我正在尝试使用正则表达式验证程序在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>
答案 0 :(得分:5)
如果您查看示例here,您会看到在此上下文中,正则表达式应该不以/
标记开头和结尾。试试这个:
ValidationExpression="^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$"
^
和$
确保您不接受电话号码之前或之后的额外字符。
答案 1 :(得分:1)
你也想考虑扩展。例如,(770)123-4567 x1234。
((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}( x\d{0,})?
答案 2 :(得分:0)
我实际上在页面的其他地方发送了一个问题,发送了一个日期的空白文本框。显然,C#将空字段解释为01/01/0001
,因此使其超出范围。这让其他一切都失去了。 @neontapir你是对的;我不应该有表达的那些。我原本没有,但是当我发布这个时,我就这么做了。感谢。