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

Posted

技术标签:

【中文标题】使用正则表达式验证器检查 11 位数字或为空【英文标题】:Using a regular expression validator to check for 11 digit number or empty 【发布时间】:2019-11-28 09:32:43 【问题描述】:

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

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

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

效果总是一样的。空的作品。但 11 位数字被识别为 INCORRECT。

我做错了什么?

【问题讨论】:

默认情况下,空格是重要的,所以它只匹配 11 位数字后跟一个空格。删除| 周围的间距。 正则表达式很简单\d11| 什么都没有``.. 给^(\d11|)$ Regex, Number or Empty的可能重复 零是有效的起始字符吗?如果没有,那么你需要类似[1-9]\d10 如果要匹配 11 位数字或空字符串,请尝试 ^(?:[0-9]11)?$ 【参考方案1】:

您的条件将认为空格是有效的,而您只寻找空的。试试下面的正则表达式:

\d11|^$

【讨论】:

【参考方案2】:

避开你的空间......RegularExpressionValidator 并使用RequiredFieldValidator 来检查空值......

【讨论】:

【参考方案3】:

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

^([1-9]\d10)?$

如果允许零作为第一个字符,则参考另一个答案https://***.com/a/57111720/2191572

【讨论】:

以上是关于使用正则表达式验证器检查 11 位数字或为空的主要内容,如果未能解决你的问题,请参考以下文章

Linux Shell正则表达式如何匹配1~3位数字

如何使用正则表达式检查不应包含重复数字的手机号码

如何用正则表达式验证用户名

用js的正则表达式检测电话号码,要求,必须是1开头,只能是数字,并且是11位数字,这儿正则表达式怎么写

需要一个js正则 手机与电话都可以验证的

Android 正则表达式验证手机号姓名(包含少数民族)身份证号