【发布时间】:2014-10-17 07:27:53
【问题描述】:
这就是我们所拥有的:
数据库中的用户,包括 phone_number 字段。当用户创建他们的帐户时,他们必须输入他们的电话号码。我们可以要求特定的格式,我们会这样做:
+ [countrycode] [phone number]
用户选择国家代码并添加所需的数字。我们当然假设他输入正确。
现在他在数据库中,我们正在尝试将 OTHER 用户与我们在他的联系人中找到的号码进行匹配。这是我们遇到问题的地方:
他可以用不同的数字格式(国内、国际、带+、不带+)保存他的联系人。我将以比利时号码为例说明我的观点:
+32 495 12 34 56 (international)
0032 495 12 34 56 (international)
0 495 12 34 56 (national)
我猜大多数用户会用国家格式保存他们的联系人,这就是问题所在。
我们的应用需要国际格式,我们需要将数据库中的用户与联系人进行比较(这是我们“传播应用”计划的一部分),让用户选择是否可以邀请联系人或不是。而且我们不想向没有应用程序的人展示(除其他外)。
How can I know if the phone number is formatted internationnaly or nationally, and either way, how can I transform it to be international?
如果有 + 我可以假设它的格式是正确的,所以我没有问题。 如果没有,我该怎么办?我想过这个,但我什至不确定:
- 任何以 00 开头的数字都是 100% 国际的?我只是把 00 改成 + 就好了?
- 任何不符合其他两个标准的数字,我...?我什至不知道。
也许可以获取世界上所有的数字格式,并使用非常长的 switch 语句将其转换为正确的国际格式?我怀疑这是正确的答案。
无论如何,任何线索/建议/解决方案显然都是最受欢迎的!
注意:我正在使用 Parse.com 存储数据,如果这有帮助的话。
【问题讨论】:
-
你是怎么解决这个问题的?
-
@kchoi 那是 6 年前的人:/ 很确定我们在下面使用了 libphonenumber,因为它是我标记为正确的,但我不能肯定地说。该项目早已不复存在,并且来自另一家公司。如果我愿意,我什至无法阅读代码。
标签: algorithm internationalization formatting parse-platform phone-number