有人知道验证MSISDN格式手机号码的正则表达式吗?

8 投票
2 回答
12256 浏览
提问于 2025-04-16 10:41

有没有人知道一个正则表达式,可以用来验证MSISDN格式的手机号码?

我看过一个解决方案,地址在http://charlvn.blogspot.com/2010/06/msisdn-regular-expressions.html,但我觉得那不是一个通用的解决方案。

我想找一个可以验证任何MSISDN标准手机号码的正则表达式。更多信息可以查看http://en.wikipedia.org/wiki/MSISDN

其次,我想知道怎么检查一个有效的MSISDN手机号码是否来自特定国家,比如“31628000000”这个号码是来自荷兰的,因为它以荷兰的国家代码“31”开头。

我打算用Python来实现验证部分。

提前谢谢大家!

2 个回答

3
  /^[1-9][0-9]{10,14}$/
  /^[1-9]\d{6,14}$/

最短的国际电话号码只有7位数字,比如说 +247 2468。

13

这样做应该可以——我不太确定你还能做到多通用:

/^[1-9][0-9]{10,14}$/

要检查一个号码是否属于特定国家,你需要在号码前面加上国家代码,然后再调整后面的数字以匹配:

/^(873[1-9][0-9]{7,11}|91[1-9][0-9]{8,12})$/    #  India
/^46[1-9][0-9]{8,12}$/                          # Sweden

撰写回答