C# 为什么我使用RegularExpression作为DataAnnotation时不识别前导零?

C# 为什么我使用RegularExpression作为DataAnnotation时不识别前导零?,c#,asp.net-mvc,regex,validation,C#,Asp.net Mvc,Regex,Validation,我的实体中有一个字段,其中有一个正则表达式作为DataAnnotation: @"^\$?([0-9]{6})(.[0-9]){0,1}?$" 它总是很好用,除非我在数字前用零 前 如果我对Regex.IsMatch做同样的验证,它会说是可以的 如何强制MVC在进行验证时保留前导零?最后,我使用了一个字符串变量,这就是有效的方法: ^\$?([0-9]{6})(\[0-9])$ 我听从了@Sinsedrix和@Michelle的建议 @hwnd应该允许您在小数点后写一位数字,或者什么也不写。

我的实体中有一个字段,其中有一个正则表达式作为DataAnnotation:

@"^\$?([0-9]{6})(.[0-9]){0,1}?$"
它总是很好用,除非我在数字前用零

如果我对Regex.IsMatch做同样的验证,它会说是可以的


如何强制MVC在进行验证时保留前导零?

最后,我使用了一个字符串变量,这就是有效的方法:

^\$?([0-9]{6})(\[0-9])$

  • 我听从了@Sinsedrix和@Michelle的建议

@hwnd应该允许您在小数点后写一位数字,或者什么也不写。如果我卸下锚,我就不能完成最后一部分。@hwnd我没有写下来,因为这很好。我刚刚更新了示例。@hwnd我将它放在一个单独的组中的唯一原因是因为我想指定可以有一个或没有一个出现。我不认为这是您的问题,但是如果您希望它只匹配一个文本
字符,您应该在第二个组中转义句点。否则它将匹配“123456Q1”123456@1“,等等。
{0,1}
后跟
是多余的。
- 123456.1    Work
- 012345.1    Does Not Work