0

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

<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 />

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

4

1 回答 1

0

参考这个链接: http ://www.w3schools.com/aspnet/prop_webcontrol_textbox_textmode.asp

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

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

<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: 验证美国电话号码的正则表达式?

于 2013-10-22T13:29:55.917 回答