带括号的电话号码的HTML5模式

时间:2013-09-18 03:36:35

标签: regex html5

我有一个HTML5模式,适用于以下格式的电话号码:

111-222-3333
111 222 3333
(777)-888-9999
(777)888-9999

但是如果用户输入

(777-999-9999

通过验证。理想情况下,我希望这会抛出一个错误,因为括号显然没有关闭。这是我的模式:

pattern="^\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$"

关于我做错的任何想法?在这个问题上,我一直在墙上撞了好几个小时。谢谢!

1 个答案:

答案 0 :(得分:13)

两个括号的可选性彼此独立。使用替换:

pattern="(?:\(\d{3}\)|\d{3})[- ]?\d{3}[- ]?\d{4}"