如何通过正则表达式验证mvc中的CNIC no
Posted
技术标签:
【中文标题】如何通过正则表达式验证mvc中的CNIC no【英文标题】:How to validate CNIC no in mvc by regular expression 【发布时间】:2018-06-20 21:15:49 【问题描述】:我想验证 CNIC 号码(计算的国民身份证号码)。 我想从客户那里获取输入,比如 (12345-1234567-1) 除了破折号之外没有字符。我在正则表达式下面写了
[RegularExpression("^[0-9]5-[-|]-[0-9]7-[-|]-[0-9]1")]
public string NICNo get; set;
但是当我提交 from 时,它会在验证错误中显示整个正则表达式,如下所示
【问题讨论】:
【参考方案1】:你不需要[-|]
,使用
^[0-9]5-[0-9]7-[0-9]$
请参阅regex demo。注意末尾的$
要求字符串结尾。
详情
^
- 字符串开头
[0-9]5
- 5 位数字
-
- 一个连字符
[0-9]7
- 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 兄弟我应该为空白正则表达式使用什么 我的意思是两个字符串之间的空格【参考方案2】:你也可以在你的代码中使用它(因为字符串需要额外的反斜杠),
[RegularExpression("^\\d5-\\d7-\\d1$")]
^\d5-\d7-\d1$
Try the above expression here
【讨论】:
以上是关于如何通过正则表达式验证mvc中的CNIC no的主要内容,如果未能解决你的问题,请参考以下文章