gpt4 book ai didi

android - 正确处理电话号码(存储,最好使用独特的形式)

转载 作者:搜寻专家 更新时间:2023-11-01 08:56:07 25 4
gpt4 key购买 nike

这个问题不是针对 Android 的,但我已经包含了标签。

我需要能够以某种标准形式(最好是字符串)存储电话号码,这样可以快速测试/评估相等性(因此字符串是理想的)

我已经找到了一些答案,最好的答案指向 http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html (我可以使用图书馆为我做这件事)

但这还不够好,我尝试了多种格式数字,了解了 Editable 工厂以使用该类中的一些静态方法,但它们似乎没有返回我原来的形式期待。

我期待像电话号码哈希这样的东西,两个输入 代表 相同的数字在这个“标准形式”中会产生相同的结果,并且可以调用这个标准形式并且没问题.我认为所有各种 + 和诸如此类的东西都是这种标准形式的缩写。

我不确定现在是否存在这样的事情。

我知道有些东西表示“当前区域”(或国家/地区),这就是为什么固定电话可以省略区号,我希望有一个函数可以返回当前位置的格式(但这不适用于手机,例如,如果它是一条在区号前面加上的固定电话,这将(更接近)我一直假设存在的“标准形式”)

我很确定电话号码的一些完整形式存在,考虑电话系统的工作原理(我承认我推断)应该有一种形式可以在整个星球上唯一地标识一个号码,并且当这个情况并非如此(例如从没有区号的固定电话调用本地电话)这是一种优化。

所以我有两个问题:

如何将电话号码“扩展”为该号码的唯一字符串,以便任何其他形式的书写该号码(带空格、0 或 +44...)“扩展”为该唯一号码?

是否有任何 ISO(/IEC?)(O 代表什么?)标准文件的草案向公众开放?我已经阅读了维基百科页面(很久以前,我花了很多时间浏览维基百科,并打开了数百个选项卡)但它涵盖了历史或一些关于格式的信息),我想了解更多关于这件事的信息大约 8 年来,我一直认为这是理所当然的。

另外,为什么 Windows Phone 8 是一个标签?让 12 位自豪的 Lumina 拥有者不感到被冷落? (建议作为标签!)

附录

不幸的是Any API in android to normalize phone number那里没有解决方案(这包括 libphonenumber),我的探索导致了一些有趣的阅读:

http://en.wikipedia.org/wiki/Panel_switch

http://en.wikipedia.org/wiki/Nonblocking_minimal_spanning_switch

http://en.wikipedia.org/wiki/Telephone_exchange

而且我仍然不能断定数字没有某种“完整形式”。

我不敢创建一个简单地将 +44 换成 0 之类的解决方案。

最佳答案

阅读您的问题后,我想起了 Google 的库 libphonenumber .它是 Google 用于解析、格式化、存储和验证国际电话号码的通用库。它执行以下操作(其中一些看起来您可能会使用):

  • 解析/格式化/验证所有国家/地区的电话号码世界的。
  • getNumberType - 获取号码的类型号码本身;能够区分固定电话,移动电话,免费电话,保费率、分担费用、VoIP 和个人号码(无论何时可行的)。
  • isNumberMatch - 获取两个是否匹配的置信度数字可能相同。
  • isPossibleNumber - 快速猜测一个数字是否可能phonenumber 通过仅使用长度信息,比全面验证。
  • isValidNumber - 电话号码的完整验证对于使用长度和前缀信息的区域。
  • AsYouTypeFormatter - 在用户输入每个数字时即时格式化电话号码。
  • PhoneNumberOfflineGeocoder - 提供与电话号码相关的地理信息。

就电话号码的国际格式而言,E.164格式是国际电信联盟推荐的格式。它定义了全局公共(public)交换电话网络的编号方案,是国际电话号码的通用格式(通常是 + 后跟国家代码、区号和号码)。

使用上述库,如果您在电话号码中提到国际代码(例如美国和加拿大的 1),则可以检查所有电话号码的有效性。如果您没有代码,但您知道要检查号码的国家/地区名称,那么您也可以进行验证。您还可以使用此库转换 1 标准 E.164 格式的所有有效数字。您还可以“扩展”该特定国家/地区的本地国家格式的数字。您也可以将其另存为字符串。尽管它确实使用了您在问题中提到的 PhoneNumberUtils

我不确定这是否是您正在寻找的,但我希望这些信息对您有所帮助。

关于android - 正确处理电话号码(存储,最好使用独特的形式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com