字母数字电话号码的正则表达式



目前我正在使用一个正则表达式来验证纯数字的电话号码,它看起来像这样:

/^([d -)(+.]{10,16})$/

我有一个要求,我需要升级正则表达式以支持以下电话号码的有效情况:

(866) 999-EMAS
1-800-MY-APPLE

感谢

没有regex这样的东西来验证电话号码…真的,忘了它。:-)

世界上有几十种格式,有时在国家内部也是如此。这意味着你对数字的数量没有任何保证——顺便说一句,数字可能只有两位数,甚至一位数。

雪上加霜的是,每个地方似乎都有自己的电话号码呈现方式:有没有当地代码和地区代码,有很多括号、括号、破折号、点、空格、字母,甚至单词;在一些国家,当地人甚至无法就同一数字的格式达成一致。

最后,您可以通过在括号中添加一些内容来修复regex,例如[d -)(+.a-zA-Z]。但最终,由于长度的考虑或涉及到一些你尚未识别的奇怪字符的边缘情况,它仍然会像要求一个非空的邮政编码一样错误。

真正确定的唯一方法是拨打号码并实际拨打电话。

在调整了现有的正则表达式后,我发现这似乎是可行的。

/^([d -)(+.[a-zA-Z0-9]]{10,16})$/

最新更新