首页 文章

正则表达式验证美国电话号码? [重复]

提问于
浏览
28

可能重复:用于电话号码验证的全面正则表达式使用JavaScript验证电话号码

我正在尝试写一个正则表达式来验证美国电话号码的格式(123)123-1234 - 真123-123-1234 - 是的

其他一切都无效 .

我想出了类似的东西

^\(?([0-9]{3}\)?[-]([0-9]{3})[-]([0-9]{4})$

但这证实了,123)-123-1234(123-123-1234

这是不对的 .

1 回答

  • 51

    匹配两者的最简单方法

    ^\([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}$
    

    (尽管最好明确说明您希望电话号码所在的格式 . )

相关问题