正则表达式将匹配有效的国际电话号码?

正则表达式将匹配有效的国际电话号码?

在尝试拨打电话号码之前,我需要确定电话号码是否有效。电话可以去世界任何地方。

正则表达式将匹配有效的国际电话号码?


梦里花落0921
浏览 1257回答 3
3回答

HUX布斯

\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$是否匹配通用国际电话号码的正确格式。我用标准的国际访问代码标识符'+'替换了美国陆线中心国际访问代码011,使其成为强制性的。我还将国家号码的最小值更改为至少一位数。请注意,如果您以此格式在手机地址簿中输入数字,无论您在何处旅行,都可以成功拨打地址簿中的任何号码。对于陆线,请将plus替换为您要拨打的国家/地区的国际访问代码。请注意,这并未考虑国家号码计划规则 - 具体而言,它允许在国家号码计划可能不允许的位置使用零和一些,并且还允许某些国家/地区(例如美国)的号码长度大于国家号码计划。

冉冉说

这是进一步的优化。\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*(\d{1,2})$(i)允许有效的国际前缀(ii)后跟9或10位数字,任何类型或位置的分隔符(最后两位数之间除外)这将匹配:+ 1-234-567-8901 + 61-234-567-89-01 + 46-234 5678901 +1(234)56 89 901 +1(234)56-89 901 +46.234.567.8901 +1 / 234 /八千九百○一分之五百六十七
打开App,查看更多内容
随时随地看视频慕课网APP