什么是 E.164 电话号码格式?

E.164 是一种国际编号方案,将任何电话号码写成国家呼叫代码后跟国内号码的形式。

一个为同一国家内的人书写的电话号码,在其他任何地方都是有歧义的。同样的数字,有无前导零或国家呼叫代码,代表的是不同的号码。E.164 通过固定唯一的书写形式消除了这种歧义。

标准到底定义了什么?

国际号码的结构,分为八个独立类别。

ITU-T E.164 建议书来自国际电信联盟(管理编号方案的联合国机构),它为每一类国际号码规定了数字结构和路由分析方法:

Recommendation ITU-T E.164 provides the number structure and functionality for the eight categories of numbers used for international public telecommunication:

这些类别涵盖的远不只是国家号码。地理区域是八类之一,其余还包括全球业务、其他全球业务、全球卫星业务、网络、国家群组、试验资源,以及物联网与机器对机器通信的业务和应用。它还为号码本身提供了正式名称:

Annex A provides additional information on the structure and function of international public telecommunication numbers (hereafter referred to as "international E.164 numbers").

正确书写的号码是什么样的?

国家呼叫代码,然后是国内号码,没有其他任何内容。

+31612345678 是一个荷兰手机号码。31 是国家呼叫代码,612345678 是国内号码。缺少什么和包含什么同样重要:没有空格、没有连字符、没有括号、没有国内拨号习惯中的前导零,也没有国际接入前缀(如 011 或 00)。

前导的 + 是标记符号而非数字。它告诉读取该字符串的系统后面是一个国际号码。没有人会拨打它。因此请存储数字部分,将标点符号视为展示层的内容。

号码最长可以有多少位?

长到你不应该去检查。

可读的原始资料对此的表述比通常引用的规则更窄。Google 的 libphonenumber FAQ 将 15 位数字的上限仅限于国内号码部分,并指出并非所有国家都遵守:

We support parsing and storing numbers from a minimum length of two digits to a maximum length of 17 digits currently (excluding country calling code). The ITU standard says the national significant number should not be longer than fifteen digits, but empirically this has been proven not to be followed by all countries.

因此,一个拒绝超过 15 位数字的校验器会拒绝真实存在的号码。

实用的规则是解析而非测量长度。通过号码库或查询可以判断一个号码是否在可分配范围内,而长度比较做不到这一点。电话号码验证检查了什么介绍了每种检查所确认的内容。

Bird 接受哪些格式?

国家代码加国内号码,标点符号可选。

你需要发送国家呼叫代码后跟国内号码。如何标记国际部分的要求是刻意宽松的。前导的 + 是可选的,00 也可以替代使用,因此 +31612345678、31612345678 和 0031612345678 表示的是同一个号码。

它不会猜测。一个按国内拨号方式书写、不含国家代码的号码会被拒绝,而不是被假定属于某个特定国家。如果表单只收集国内号码而不同时收集国家信息,就会产生这种拒绝。请将两者一起采集。

购买号码时,应发送的值是库存返回的原始值,而不是重新格式化的副本。查询指南介绍了接受的格式,什么是虚拟电话号码介绍了持有号码后可以用它做什么。

简而言之

  1. 它是 ITU 建议书,不是格式约定。

    ITU-T E.164 定义了八类国际号码的号码结构,其中包括一类用于机器对机器服务的号码。

  2. 加号是标记符号,不是数字。

    它表示后面跟的是一个国际号码,而不是可以直接拨打的内容,因此真正重要的是数字部分本身。

  3. 不要按长度做校验。

    Google 的号码库引用了 ITU 标准中 15 位数字的指导性上限,并指出并非所有国家都遵循该限制。

  4. 没有国家代码的号码不是 E.164 号码。

    Bird 会拒绝仅含国内号码的输入,而不会猜测它属于哪个国家。请将国家代码一并存储。

付诸实践。

继续查看此主题的文档、指南和示例。

获取实施简报

基于同一网络构建。

测试 API 密钥即刻获取。添加付款方式并验证发送者身份后,即可解锁生产环境。

你的下一个创意。 随时连接。