0

我知道我可以使用[Required],[StringLength]注释来验证空字符串和长度要求,但也想使用相同的正则表达式来验证它们。我没有尝试过,因为我对正则表达式不是很好。

正则表达式应该验证

1.空字符串(不应该)

2.字符长度 (8)

3.整数

4.起始编号(应为1)

这是代码:

 [DisplayName("Account Number:")]
 [RegularExpression("", 
             ErrorMessage = "An eight digit long number starting with 1 required")]
 public string accountNo { get; set; }

提前致谢 !

4

3 回答 3

6

使用这个正则表达式 ^1\d{7}$

或者

^1[0-9]{7}$

或者,在紧要关头,

  ^1[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$

示例代码:

using System.Text.RegularExpressions;
 Regex RegexObj = new Regex(@"^1\d{7}$");
 bool  result=   RegexObj.IsMatch("" );

--result 具有错误值

如果您不想允许空字符串,则将以下属性放在该字段上。

[Required(AllowEmptyStrings = false)]
于 2012-05-30T13:13:14.347 回答
3

根据MSDN 上的文档,一个空字符串总是通过正则表达式验证器,如果你想确保他们输入了一些东西,你应该使用一个必需的属性。或者,您可以从正则表达式派生自己的自定义数据注释属性,并自己处理空条件。

于 2012-05-30T15:51:46.633 回答
0

要确保空字符串有效,请添加一个设置为的[Required]属性。这可以防止被分配,但允许空字符串。AllowEmptyStringstruenull

至于正则表达式,Romil 的表达式应该可以正常工作。

[DisplayName("Account Number:")]
[Required(AllowEmptyStrings = true)]
[RegularExpression(@"^1\d{7}$", 
         ErrorMessage = "An eight digit long number starting with 1 required")]
public string accountNo { get; set; }

编辑如果您还想防止验证空字符串,只需省略AllowEmptyStrings设置(因为它默认为false)。

[DisplayName("Account Number:")]
[Required]
[RegularExpression(@"^1\d{7}$", 
         ErrorMessage = "An eight digit long number starting with 1 required")]
public string accountNo { get; set; }
于 2012-05-30T13:19:17.953 回答