搜索 phone 个号码的正确方法

The right way to search phone numbers

在我的应用程序中,我通过服务器上的 phone 号码搜索用户。 我遇到过这样的问题:在我的国家,你可以把一个phone号码写成'8xxxxxxxx''+7xxxxxxxx''7xxxxxxxx'。 所以我应该进行搜索,以便仍然可以找到用不同符号书写的数字。 但是在不同的国家是怎样的呢?数字是怎么写的?有没有办法执行有效搜索?

您可能想要查看 E.164 标准格式。

E.164 以易于人类阅读和机器解析的格式组织 phone 号码和所有必要的本地化信息。它定义了一种简单的格式,用于在易于阅读的字符串中明确存储 phone 数字。该字符串以 + 号开头,后跟国家代码和“用户”号码,即 phone 号码,没有任何上下文前缀,例如本地拨号代码、国际拨号代码或格式。

存储为 E.164 的号码可以很容易地在适当的上下文中进行解析、格式化和显示,因为 phone 号码的上下文会极大地影响其格式。

负责这项工作的库称为 Google’s libphonenumber。使用 libphonenumber,您可以非常轻松地解析、验证和格式化 phone 数字输入,在您键入格式时进行操作,甚至收集有关该数字的额外信息,例如它是手机还是固定电话等等它来自的州或省。 Libphonenumber 的基本形式由 XML 文件中的一组规则和正则表达式组成,用于分解和解析数字。