可能重复:
A comprehensive regex for phone number validation
Validate phone number with JavaScript
我正在尝试编写正则表达式来验证美国电话号码格式 (123)123-1234 - 是的 123-123-1234 - 是的
其他所有事情都无效。
我想出了像
这样的东西 ^\(?([0-9]{3}\)?[-]([0-9]{3})[-]([0-9]{4})$
但这验证了, 123)-123-1234 (123-123-1234
不对。
答案 0 :(得分:54)
匹配两者的最简单方法
^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$
和
^[0-9]{3}-[0-9]{3}-[0-9]{4}$
是使用交替((...|...)
):将它们指定为两个主要分开的选项:
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$
顺便说一句,当美国人把区号放在括号中时,我们实际上在那之后放了一个空格;例如,我写(123) 123-1234
,而不是(123)123-1234
。所以你可能想写:
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
(尽管最好明确说明您希望电话号码所在的格式。)