7

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

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

但是如果用户输入

(777-999-9999

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

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

关于我做错了什么的任何想法?在这个问题上,我已经把头撞在墙上好几个小时了。谢谢!

4

1 回答 1

16

两个括号的可选性是相互独立的。使用交替:

pattern="(?:\(\d{3}\)|\d{3})[- ]?\d{3}[- ]?\d{4}"
于 2013-09-18T03:39:18.670 回答