我想验证美国的电话号码,这是我到目前为止所拥有的:
var numberRegex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
我的问题是这允许单支架。
这将允许传递一个左括号而不是像这样的结束括号:(111-121-1212
。
是否有人使用正则表达式脚本来匹配美国电话号码和帐号括号?
答案 0 :(得分:2)
使用替代品(|
):
(?:
\(([0-9]{3})\)
|
([0-9]{3})
)
结果重看如下:
var numberRegex = /^(?:\(([0-9]{3})\)|([0-9]{3}))[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
答案 1 :(得分:0)
答案 2 :(得分:-1)
我会反对这一点。验证电话号码的唯一方法是尝试并调用它,看看谁接听。电话号码看起来可能在语法上是正确的,但它仍然可能在语义上错误(即假电话号码)。
您可以做的最好的事情是向用户发出警告,指出电话号码“看起来不合法”,但仍接受任何输入。