使用正则表达式验证器检查 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 位数字或为空的主要内容,如果未能解决你的问题,请参考以下文章