regex - 什么正则表达式可以匹配有效的国际电话号码?

标签 regex telephony ivr

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

什么正则表达式可以匹配有效的国际电话号码?

最佳答案

\+(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 替换为标准国际接入码标识符“+”,使其成为强制性的。我还将国家号码的最小值更改为至少一位数字。

请注意,如果您在手机通讯录中输入此格式的号码,则无论您身在何处,都可以成功调用通讯录中的任何号码。对于固定电话,请将加号替换为您调用电话所在国家/地区的国际接入码。

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

关于regex - 什么正则表达式可以匹配有效的国际电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113908/

相关文章:

java - 正则表达式用于修复带有空格的断开链接

regex - linux查找正则表达式

c# - 电子邮件验证 : converting a regular expression written in PHP (preg) to . NET(正则表达式)

android - 在 android 6 上获取 "No permission to write APN settings"错误

api - 研究 IVR 软件开发

asterisk - 无法播放 Asterisk 中保留的音乐

java - 将正则表达式构造为 Java 字符串

android - 更改移动网络模式(gsm、wcdma、自动)

java - Android - 无法访问 **package android.telephony** 下的某些类

mysql - 使用 PGSQL() 将 postgresql 与 Asterisk 连接