为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2019-08-16 14:59:17
正则表达式将匹配有效的国际电话号码?在尝试拨打电话号码之前,我需要确定电话号码是否有效。电话可以去世界任何地方。正则表达式将匹配有效的国际电话号码?
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

\+(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替换为您要拨打的国家/地区的国际访问代码。

请注意,这并未考虑国家号码计划规则 - 具体而言,它允许在国家号码计划可能不允许的位置使用零和一些,并且还允许某些国家/地区(例如美国)的号码长度大于国家号码计划。


查看完整回答
反对 回复 2019-08-16
?
冉冉说

TA贡献1877条经验 获得超1个赞

这是进一步的优化。

\+(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 /八千九百○一分之五百六十七


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 1171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信