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

C# 如何验证电话号码字段仅接受号码和最多12位数字?,c#,asp.net,.net,regex,C#,Asp.net,.net,Regex,我正在验证10位印度电话号码(编码如下)。我只接受数字。我似乎不知道如何抛出一个错误,以便输入的数字以文本或特殊字符开头,并且不允许超过12位。 或者,如果用户输入的数字超过12位,则将trunacte编号改为12位 <asp:RegularExpressionValidator ID="phoneregularExpression" runat="server" ErrorMessage="MoreThan10" EnableClientScript="false" ControlToV

我正在验证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>


提前感谢。

试试这个正则表达式

^[0-9]{12}$

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

^([0-9]{10,12})$
这里有一个例子来证明这一点

此选项只允许10或12位,11位数字的选项将失败

^([0-9]{10}|[0-9]{12})$
这里有一个例子来证明这一点

这将允许1到12位数字:

^([0-9]{1,12})$
现在,您已经在这里将
EnableClientScript
设置为false。这意味着不会有任何JavaScript在客户端对其进行验证。但是,在尝试检查验证器
是否有效之前,您需要确保调用
this.Validate()
以强制页面上的验证

1) 最大限值=12

ValidationExpression="\d{0,12}"
2) 要求长度=12,但不限于

ValidationExpression="\d{12}"

使用此选项,我将TextBox和Validator的最大长度设置为12,并在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>


@YasmeenAnsari,你管它叫什么。这是一门课。因此,在这个ASPX页面调用的代码隐藏中
this.Validate()在尝试保存数据的按钮中单击。然后,您所要做的就是检查,如果无效,则不保存,然后发回,以便可以看到错误消息。@YasmeenAnsari,由您决定不运行保存代码。这不会自动发生。此外,第一个正则表达式允许10-12位数字,第二个正则表达式允许10或12位数字。你在你的问题中说他们必须是10岁,不超过12岁。所以,是的,任何小于10的值都是错误的。@YasmeenAnsari,如果你在问题中不清楚,意思是它可以是1到12位,那么我编辑了我的答案,给你一个正则表达式,它允许1到12位,但是如果它是0位,它也会抛出一个错误,因此如果您需要,则将
1
更改为
0
,因此它是
0,12
。@解决方案,谢谢您的帮助,您的正则表达式工作正常。