ASP.NET 正则表达式验证器未按预期进行验证
本文关键字:验证 NET 正则表达式 ASP | 更新日期: 2023-09-27 18:36:21
我正在尝试使用正则表达式验证器在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>
如果您查看此处的示例,您会发现在此上下文中正则表达式不应以/
标记开头和结尾。 试试这个:
ValidationExpression="^'([0-9]{3}')[0-9]{3}-[0-9]{4}$"
^
和$
确保您不接受电话号码之前或之后的额外字符。
您还需要考虑扩展。例如,(770)123-4567 x1234。
(('('d{3}') ?)|('d{3}-))?'d{3}-'d{4}( x'd{0,})?
使用 ASP.NET 分机验证电话号码
我实际上在页面上的其他地方发送日期的空白文本框时遇到了问题。显然,C# 将空字段解释为01/01/0001
,因此超出了范围。这是把其他一切都抛弃了。 @neontapir 你是对的;我不应该在表达中出现这些。我最初没有,但碰巧我在发布这个时做到了。谢谢。