我要验证CNIC否(计算的国民身份证号码)。 我想从客户端获取输入,如(12345-1234567-1)除了破折号之外没有任何字符。我在下面写了正则表达式
[RegularExpression("^[0-9]{5}-[-|]-[0-9]{7}-[-|]-[0-9]{1}")]
public string NICNo { get; set; }
但是当我提交它时,它会在验证错误中显示整个正则表达式,如下所示
答案 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}$