RegularExpressionValidator for US phonenumber ASP.net

时间:2013-10-22 13:01:37

标签: asp.net regex validation

我在使用Visual Studio 2010时使用RegularExpressionValidator时出现问题。这是我的代码:

<asp:Label ID="phone" runat="server" Text="Phone Number"></asp:Label><asp:TextBox ID="phonebox"
    runat="server" TextMode="Phone"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" 
    ErrorMessage="Invalid Number" ControlToValidate="phonebox" 
    ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"></asp:RegularExpressionValidator>
<br />

无论我输入什么号码,我都会在该字段旁边收到错误消息 - 即使我复制并粘贴了有效的美国电话号码。

1 个答案:

答案 0 :(得分:0)

请参阅此链接: http://www.w3schools.com/aspnet/prop_webcontrol_textbox_textmode.asp

尽管在msdn上进行了枚举,但您应该只使用这三个:
SingleLine - 默认。一行文本框
MultiLine - 多行文字框
密码 - 屏蔽输入的一行文本框

我建议将其保留为简单文本(默认值)并使用RegEx之一来验证正确性

<asp:TextBox ID="phonebox" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" 
ErrorMessage="Invalid Number" ControlToValidate="phonebox"     ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"></asp:RegularExpressionValidator>

您可以在以下网址找到很多其他RegEx:  Regular expression to validate US phone numbers?