3

我正在尝试使用正则表达式验证器在 Visual Studio 中(###)###-####验证格式的电话号码。\([0-9]{3}\)[0-9]{3}-[0-9]{4}我收到带有 (111)111-1111 的错误消息。然而,当我在正则表达式测试站点上执行此操作时,它工作正常。这里还有其他我想念的东西吗?

<asp:RegularExpressionValidator
     ID="PhoneValidator"
     runat="server"
     ErrorMessage="Phone Format Must Be (###)###-####" 
     ValidationExpression="/\([0-9]{3}\)[0-9]{3}-[0-9]{4}/g"
     Display="None" 
     ControlToValidate="PhoneTextBox">
</asp:RegularExpressionValidator>
4

3 回答 3

5

如果您查看此处的示例,您会发现在这种情况下,正则表达式不应/标记开头和结尾。试试这个:

ValidationExpression="^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$"

并确保您在电话号码之前或之后不接受额外的字符^$

于 2013-10-21T19:01:28.637 回答
1

你也想考虑扩展。例如,(770)123-4567 x1234。

((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}( x\d{0,})?

在 ASP.NET 中使用扩展验证电话号码

于 2013-10-21T19:16:58.653 回答
0

实际上,我在页面上的其他地方遇到了发送日期空白文本框的问题。显然 C# 将空字段解释为01/01/0001并因此使其超出范围。这把其他一切都扔掉了。@neontapir 你是对的;我不应该在表情上有那些。我最初没有,但是当我发布这个时,我恰好这样做了。谢谢。

于 2013-10-21T20:09:32.123 回答