使用正则表达式验证器检查11位数字或为空

时间:2019-07-19 11:29:03

标签: c# asp.net regex

我正在使用以下代码来验证文本框是否为空或11位数字(当字符的其他所有组合都不正确时,两者都是正确的。)

<asp:RegularExpressionValidator 
    ID="numbertextboxval" 
    runat="server" 
    ErrorMessage="number not correct"
    Display="Static"
    ControlToValidate="numbertextbox"
    ValidationExpression="([0-9]{11} | (^.))"/>

我也尝试使用: ^(\ s * |([0-9] {11}))。

效果始终相同。空的作品。但是11位数字被标识为不正确。

我在做什么错了?

3 个答案:

答案 0 :(得分:2)

您的条件将仅在查找空白时将空格视为有效。尝试以下正则表达式:

\d{11}|^$

enter image description here

答案 1 :(得分:0)

避免占用空间。...RegularExpressionValidator并使用RequiredFieldValidator检查空值....

enter image description here

答案 2 :(得分:0)

如果数字不能以零开头,请使用:

^([1-9]\d{10})?$

如果第一个字符允许为零,请参考其他答案https://stackoverflow.com/a/57111720/2191572