如何验证电话号码字段只接受数字和最多12位数?

时间:2013-08-16 12:16:43

标签: c# asp.net .net regex

我正在对10位印度电话号码进行验证(下面编码)。我只接受数字。我似乎无法弄清楚如何抛出错误,以便输入的数字以文本或特殊字符开头,也不允许超过12位数。 或者,如果用户输入的数字超过12位,则将trunacte数字设置为12位数。

<asp:RegularExpressionValidator ID="phoneregularExpression" runat="server" ErrorMessage="MoreThan10" EnableClientScript="false"
ControlToValidate="txtphone" Display="Static" Text="Please enter atleast 10 digits" ValidationExpression="^([0-9\(\)\/\+ \-]*)$"></asp:RegularExpressionValidator>

提前致谢。

4 个答案:

答案 0 :(得分:6)

此正则表达式将确保有10,但允许不超过12:

^([0-9]{10,12})$

以下是Regex 101来证明这一点。

这个只允许10或12 ,而11位数将会失败。

^([0-9]{10}|[0-9]{12})$

以下是Regex 101来证明这一点。

这个允许1到12位数字:

^([0-9]{1,12})$

现在,您已将EnableClientScript设置为false。这意味着不会有任何JavaScript验证客户端。但是,您需要确保致电this.Validate()以强制验证页面,然后尝试检查验证程序IsValid

答案 1 :(得分:1)

试试这个

1)最大限制= 12

ValidationExpression="\d{0,12}"

2)要求长度= 12但不限制

ValidationExpression="\d{12}"

答案 2 :(得分:1)

使用此设置将最大长度设置为12到TextBox和Validator并在regularexpression上验证并尝试

<asp:TextBox runat="server" ID="txt" MaxLength="12"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
        ErrorMessage="Error" ForeColor="Red" ControlToValidate="txt"
        ValidationExpression="^[0-9]{12}$"></asp:RegularExpressionValidator>

答案 3 :(得分:0)

试试这个正则表达式

^[0-9]{12}$