如何通过正则表达式在mvc中验证CNIC no

时间:2018-01-11 14:00:01

标签: 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; }

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

enter image description here

2 个答案:

答案 0 :(得分:3)

您不需要[-|],请使用

^[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; }

答案 1 :(得分:0)

您也可以在代码中使用它(由于字符串而产生的反斜杠)

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

Try the above expression here