我想验证一个美国电话号码,这是我目前所拥有的:
var numberRegex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
我的问题是这允许单括号。
这将允许传递一个左括号而没有像这样的右括号:(111-121-1212
.
有没有人有一个正则表达式脚本可以匹配美国电话号码并考虑括号?
我想验证一个美国电话号码,这是我目前所拥有的:
var numberRegex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
我的问题是这允许单括号。
这将允许传递一个左括号而没有像这样的右括号:(111-121-1212
.
有没有人有一个正则表达式脚本可以匹配美国电话号码并考虑括号?
使用替代品 ( |
):
(?:
\(([0-9]{3})\)
|
([0-9]{3})
)
结果 re 看起来像:
var numberRegex = /^(?:\(([0-9]{3})\)|([0-9]{3}))[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/
我建议不要这样做。验证电话号码的唯一方法是尝试拨打电话,看看谁接听。电话号码可能在语法上看起来是正确的,但在语义上仍然可能是错误的(即假电话号码)。
您能做的最好的事情就是警告用户电话号码“看起来无效”,但无论如何都接受任何输入。