我在使用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 />
无论我输入什么号码,我都会在该字段旁边收到错误消息 - 即使我复制并粘贴了有效的美国电话号码。
答案 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?