我需要在尝试调用电话号码之前确定该电话号码是否有效。电话可以打到世界任何地方。
什么正则表达式可以匹配有效的国际电话号码?
最佳答案
\+(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/