C# 如何用正则表达式验证mvc中的CNIC no
我要验证CNIC号码(计算的国民身份证号码)。 我想从客户端获取输入,比如(12345-1234567-1)除了破折号之外没有字符。我写了下面的正则表达式C# 如何用正则表达式验证mvc中的CNIC no,c#,regex,asp.net-mvc,data-annotations,C#,Regex,Asp.net Mvc,Data Annotations,我要验证CNIC号码(计算的国民身份证号码)。 我想从客户端获取输入,比如(12345-1234567-1)除了破折号之外没有字符。我写了下面的正则表达式 [RegularExpression("^[0-9]{5}-[-|]-[0-9]{7}-[-|]-[0-9]{1}")] public string NICNo { get; set; } 但当我提交from时,它在验证错误中显示了整个正则表达式,如下所示 您不需要[-|],使用 ^[0-9]{5}-[0-9]{7}-[0-9]$ 看。请
[RegularExpression("^[0-9]{5}-[-|]-[0-9]{7}-[-|]-[0-9]{1}")]
public string NICNo { get; set; }
但当我提交from时,它在验证错误中显示了整个正则表达式,如下所示
您不需要
[-|]
,使用
^[0-9]{5}-[0-9]{7}-[0-9]$
看。请注意,结尾处的$
需要字符串结尾
详细信息
-字符串的开头^
-5位数字[0-9]{5}
-连字符-
-7位[0-9]{7}
-连字符-
-一个数字(无需“说”[0-9]
){1}
-字符串结束锚定$
[RegularExpression("^[0-9]{5}-[0-9]{7}-[0-9]$", ErrorMessage = "CNIC No must follow the XXXXX-XXXXXXX-X format!")]
public string NICNo { get; set; }
您也可以在代码中使用此选项(由于字符串的原因,需要额外的反斜杠)
谢谢@Wiktor Stribizew。。。。现在它工作了,但仍然显示整个正则表达式在验证错误中显示,正如我在上面的屏幕中提到的,这是一些刷新问题吗?如果正则表达式验证通过,应该不会有错误消息,对吗?Stribizew bro我应该用什么来表示空白regexI表示两个字符串之间的空格
[RegularExpression("^\\d{5}-\\d{7}-\\d{1}$")]
^\d{5}-\d{7}-\d{1}$