我想要一个只有10位数字的正则表达式验证器
我试过这个,但它仅适用于数字,而不适用于数字
<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId"
ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red"
ValidationExpression="\d+" />
答案 0 :(得分:7)
您需要使用limiting quantifier {min,max}
。
如果您允许空输入,请使用{0,10}
匹配0到10位数字:
ValidationExpression="^[0-9]{0,10}$"
否则,使用{1,10}
允许1到10位数字:
ValidationExpression="^[0-9]{1,10}$"
或者匹配完全 10位数字符串省略min,
部分:
ValidationExpression="^[0-9]{10}$"
另请注意,服务器端验证使用.NET正则表达式语法,\d
匹配此正则表达式中0
到9
的数字以上,因此更喜欢{{1} }。请参阅\d
is less efficient than [0-9]
。
此外,您似乎可以完全省略[0-9]
和^
(请参阅MSDN Regular Expressions in ASP.NET article):
您不需要指定字符串的开头和字符串匹配字符的结尾(
$
和^
) - 它们是假设的。 如果你添加它们,它不会伤害(或改变)任何东西 - 它根本就没必要。
为了清晰起见,大多数人更喜欢将它们明确地保留在模式中。
答案 1 :(得分:1)
测试这个答案:
<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId" ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red" ValidationExpression="[0-9]{10}" />