正则表达式验证器,用于10位数字,仅限数字c#asp.net

时间:2016-06-21 10:38:36

标签: c# asp.net regex

我想要一个只有10位数字的正则表达式验证器

我试过这个,但它仅适用于数字,而不适用于数字

<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId"
                                ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red"
                                ValidationExpression="\d+" />

2 个答案:

答案 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匹配此正则表达式中09的数字以上,因此更喜欢{{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}" />