目前我正在使用正则表达式来验证仅限数字的电话号码,如下所示:
/^([\d \-\)\(\+\.]{10,16})$/
我需要升级正则表达式以支持以下有效的电话号码:
(866) 999-EMAS
1-800-MY-APPLE
由于
答案 0 :(得分:2)
没有正则表达式来验证电话号码......真的,忘了它。 : - )
世界上有几十种格式,有时在国家内部。这意味着你无法保证数字的位数 - 顺便说一下,它可以是两个,甚至一个数字。
添加侮辱伤害,每个地方似乎都有自己的方式来呈现电话号码:使用本地代码和区域代码或没有,带有大量括号,括号,破折号,点,空格,字母,甚至单词;你说出来的。在一些国家,当地人甚至不能就如何在相同数字之间格式化它们达成一致。
最后,您可以通过在括号中添加内容来修复正则表达式,例如: [\d \-\)\(\+\.a-zA-Z]
。但最终它仍然会像需要非空的邮政编码一样错误,因为考虑到长度因素或某些涉及你尚未识别的怪异角色的边缘情况。
真正确定的唯一方法是拨打号码并实际拨打电话。
答案 1 :(得分:0)
在调整现有的正则表达式之后,我发现这似乎有用。
/^([\d \-\)\(\+\.[a-zA-Z0-9]]{10,16})$/