我知道我可以使用[Required]
,[StringLength]
注释来验证空字符串和长度要求,但是也希望使用相同的正则表达式来验证它们。我没有尝试,因为我对正则表达式不是很好。
正则表达式应验证
1.Empty string(不应该被允许)
2.字符长度(8)
3.Integer
4.开始编号(应为1)
以下是代码:
[DisplayName("Account Number:")]
[RegularExpression("",
ErrorMessage = "An eight digit long number starting with 1 required")]
public string accountNo { get; set; }
提前致谢!
答案 0 :(得分: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("" );
- 结果有错误值
如果您不想允许空字符串,请在字段上放置以下属性。
[Required(AllowEmptyStrings = false)]
答案 1 :(得分:3)
Per the documentation on MSDN,空字符串总是传递正则表达式验证器,如果要确保它们输入了某些内容,则应使用必需属性。或者,您可以从正则表达式派生自己的自定义数据注释属性,并自己处理空条件。
答案 2 :(得分:0)
要确保空字符串有效,请添加[Required]
属性,AllowEmptyStrings
设置为true
。这可以防止分配null
,但允许空字符串。
至于正则表达式,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; }