关于iphone:如何确定一个电话号码(带有国家电话代码)是否与另一个电话号码(没有国家电话代码)相同

How to determine if a phone number (with country calling code) is equal to another (whithout country calling code)

我正在为iPhone使用\\'Viber \\'之类的应用程序(http://www.viber.com/)。

我需要在数据库中使用用户电话号码作为ID。

当用户启动应用程序时,我需要确定哪些联系人使用同一应用程序。
我可以使用ios API获取联系人的电话号码。

但是,在考虑国家/地区电话代码(http://en.wikipedia.org/wiki/List_of_country_calling_codes)时,此方案存在问题:

" "注册时,USER A键入其电话号码,不带国家/地区电话代码。
USER A在USER B的联系人列表中,但没有国家/地区代码。

例如在法国:
33 x xx xx xx xx指的是与0x xx xx xx xx

相同的电话

是否有解决此问题的简单方法?


没有简单的方法可以将本地格式转换为E.164格式。问题在于每个国家/地区的本地移动格式各不相同,因此您不能为所有国家/地区制定一套规则。您必须找出当地移动运营商支持的国家/地区采用的格式。

如果您必须支持多个国家/地区,则可以将其作为iphone返回的MCC / MNC的基础。我尚未找到在哪些国家/地区支持哪些本地格式的列表。它也不能解决号码为本地格式的漫游电话的问题。

如果您必须与多个国家打交道,那么您将遇到像澳大利亚这样的国家的问题,这些国家支持本地数字格式,这使得在没有更多信息的情况下几乎无法将它们转换为E.164格式....

请参阅此问题,基本上与您所遇到的问题相同。

我建议您所有的用户都使用E.164格式存储那里的所有电话号码。如果必须支持转换,则仅支持必须处理的国家/地区格式。确保您调查了该国家/地区支持的所有格式。

您可以尝试使用上面问题中的通用名称,但是它不适用于所有数字格式。

在我使用的PBX软件中,我们使用基于规则的引擎,客户可以在该环境中配置该引擎,并尝试针对销售国家/地区预先填充。