如何通过正则表达式验证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的主要内容,如果未能解决你的问题,请参考以下文章

MVC 正则表达式验证电子邮件

C# MVC 4 应用程序中的电子邮件地址验证:使用或不使用正则表达式 [重复]

mvc Model验证总结及常用正则表达式

Asp .NET MVC 正则表达式

MVC C# 单个正则表达式来验证花括号和尖括号

通过相等数量的元音和辅音进行正则表达式验证[关闭]