如何通过正则表达式验证mvc中的CNIC号

How to validate CNIC no in mvc by regular expression

我要验证 CNIC 号码(计算出的国民身份证号码)。 我想从客户端获取输入,例如 (12345-1234567-1) 除了破折号之外没有其他字符。我在下面写了正则表达式

[RegularExpression("^[0-9]{5}-[-|]-[0-9]{7}-[-|]-[0-9]{1}")]
public string NICNo { get; set; }

但是当我提交时,它显示了验证错误中的整个正则表达式,如下所示

你不需要[-|],使用

^[0-9]{5}-[0-9]{7}-[0-9]$

regex demo。请注意末尾的 $ 需要字符串结尾。

详情

  • ^ - 字符串开头
  • [0-9]{5} - 5 位数
  • - - 一个连字符
  • [0-9]{7} - 7 位数
  • - - 一个连字符
  • [0-9] - 单个数字(不需要 "saying" {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; }

您也可以在您的代码中使用它(因为字符串需要额外的反斜杠),

[RegularExpression("^\d{5}-\d{7}-\d{1}$")] 
^\d{5}-\d{7}-\d{1}$

Try the above expression here