E.164 是国际电话编号计划,它可以确保 PSTN 上的每个设备具有全球唯一的号码,使得 电话和短信 正确路由到不同国家的个人电话。 E.164号码格式化为 [+] [国家代码] [用户号码,包括地区代码],最多可以有15位数字。
公共交换电话网(Public Switched Telephone Network 或 简称
PSTN)是一种用于全球语音通信的电路交换网络,是目前世界上最大的网络,拥有用户数量大约是8亿。
E.164 号码示例
| E.164 Format | Country Code | Country | Subscriber Number | 
|---|---|---|---|
| +1 4155552671 | 1 | US(美国) | 4155552671 | 
| +44 2071838750 | 44 | GB(英国) | 2071838750 | 
| +55 1155256325 | 55 | BR(巴西) | 1155256325 | 
| +85 15300830723 | 86 | CN(中国) | 15300830723 | 
E.164 正则
有时您需要以编程方式验证字符串是否是效的E.164电话号码格式。
如:获取表单中用户的电话号码,发送SMS 或 语音电话 以及 验证数据库中的电话号码。
根据国际电联E.164的建议,电话号码格式必须是以+开头的最多15位数字,并排除0作为第一个字符的电话号码(因为没有以0开头的国家代码)。
一个正则表达式示例: ^\+?[1-9]\d{1,14}$
这个正则也会匹配到无效的电话号码。
您需要指定一组更复杂的模式 来匹配全球所有国家的有效E.164号码。
更简单和更强大的选择是使用Twilio Lookup API来执行电话号码验证和格式化,而不是RegEx(这是原味的的一个广告 😆)。
国际电话区号列表
E.164 : The international public telecommunication numbering plan