我的国际电话号码正则表达式是否存在缺陷或未覆盖的有效号码?
电话号码正则表达式排查需求
正则表达式
^(\(?([\d \-\)\–\+\/\(.]+){8}\)?([ .\-–\/]?)([\d]+))$
设计目标
- 支持北美及国际电话号码
- 表单填写者知晓我方位于加拿大,可填可不填国家码,必要时会询问国别,因此不强制填写国家码
- 填写者可能不清楚加拿大的长途/国际拨号规则,因此不强制填写"+"、00或011
- 电话号码不含分机号——表单另有独立数字字段用于填写分机
- 最小长度为9位数字(由{8}设定,澳大利亚等地区仍使用6位号码吗?)
正则来源
该正则表达式改编自一款德国号码正则。
已验证可匹配的号码
美国(北美)电话号码 1-800-123-4567 (123)456-7890 1234567890 123-456-7890 123.456.7890 123 456 7890 (123) 456 7890 英国电话号码 +447222555555 +44 7222 555 555 (0722) 5555555 #2222(不匹配) 法国电话号码 0123456789 01 23 45 67 89 01.23.45.67.89 0123 45.67.89 0033 123-456-789 +33-1.23.45.67.89 +33 – 123 456 789 +33(0) 123 456 789 +33 (0)123 45 67 89 +33 (0)1 2345-6789 +33(0) – 123456789 德国电话号码 (06442) 3933023 (02852) 5996-0 (042) 1818 87 9919 06442 / 3893023 06442 / 38 93 02 3 06442/3839023 042/ 88 17 890 0 +49 221 549144 – 79 +49 221 – 542194 79 +49 (221) – 542944 79 0 52 22 – 9 50 93 10 +49(0)121-79536 – 77 +49(0)2221-39938-113 +49 (0) 1739 906-44 +49 (173) 1799 806-44 0214154914479 02141 54 91 44 79 01517953677 +491517953677 015777953677 02162 – 54 91 44 79 (02162) 54 91 44 79 中国电话号码 0936-4211235 89076543 010-12345678-1234 中国手机号码 008618311006933 +8617888829981 1911925564 印度电话号码 03595-259506 03592 245902 03598245785 9775876662 0 9754845789 0-9778545896 +91 9456211568 91 9857842356 919578965389 巴西电话号码 (12) 123 1234 (01512) 123 1234 (0xx12) 1234 1234 澳大利亚电话号码 0732105432 1300333444 6位号码真的存在吗?当前正则最小要求由{8}设为9位 131313(不匹配) 荷兰电话号码 +31235256677 +31(0)235256677 023-5256677 瑞典电话号码 +46 8 123 456 78 08-123 456 78 0123-456 78
排查请求
目前该正则经测试可匹配上述各类号码,现寻求排查其存在的缺陷,以及未覆盖的有效电话号码格式。
内容的提问来源于stack exchange,提问作者Normand Ranger
相关产品推荐
相关产品推荐

