- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这个问题不是针对 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 用于解析、格式化、存储和验证国际电话号码的通用库。它执行以下操作(其中一些看起来您可能会使用):
就电话号码的国际格式而言,E.164格式是国际电信联盟推荐的格式。它定义了全局公共(public)交换电话网络的编号方案,是国际电话号码的通用格式(通常是 +
后跟国家代码、区号和号码)。
使用上述库,如果您在电话号码中提到国际代码(例如美国和加拿大的 1
),则可以检查所有电话号码的有效性。如果您没有代码,但您知道要检查号码的国家/地区名称,那么您也可以进行验证。您还可以使用此库转换 1 标准 E.164
格式的所有有效数字。您还可以“扩展”该特定国家/地区的本地国家格式的数字。您也可以将其另存为字符串。尽管它确实使用了您在问题中提到的 PhoneNumberUtils
。
我不确定这是否是您正在寻找的,但我希望这些信息对您有所帮助。
关于android - 正确处理电话号码(存储,最好使用独特的形式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791565/
我有一个包含姓名、电子邮件和内容文本区域的表单。一切正常,但当我尝试为手机号码添加 1 个表单输入时,表单不会提交。 Javascript: function hgsubmit() { i
所以我正试图在 Scheme 中找出整个 call/cc 的东西。下面是我正在使用的代码: (+ 1 (call/cc (lambda (k) (if (number? k)
所以我正试图在 Scheme 中找出整个 call/cc 的东西。下面是我正在使用的代码: (+ 1 (call/cc (lambda (k) (if (number? k)
我在 list 中有权限: 检查电话是否正在使用的代码可能会为无法接听电话的平板电脑等设备启动安全异常。所以,我制作了这个方法来检查是否设备可以使用 TelephonyManager: priva
我想知道 facebook API 允许 PHP 网页提取以下用户数据的先决条件是什么: 姓名 电子邮件 电话 据我了解,提取电话号码需要您的网站在 facebook/Websense 的白名单中吗?
我如何从我的应用程序调用特定号码的电话?给我一些执行此任务的逻辑或代码... 最佳答案 使用 UIApplication 的 openURL: 方法: [[UIApplication sharedAp
在 URI 中,空格可以编码为 + .既然如此,那么在创建具有国际前缀的 tel URI 时是否应该对前导加号进行编码? 哪个更好?两者在实践中都有效吗? Call me Call me 最佳答案 不
我正在尝试使用 Insomnia 调用 SOAP 电话 - 特别是试图让帖子成功。我将 URL 定义为端点,并将正文类型作为带有 SOAP 内容(信封、标题、正文)的 XML。我在标题中定义了用户 I
服务器有没有办法将一些数据无线无缝地推送到客户端,可能是 Windows(电话)、iPhone、Mac 或 Android 设备,没有任何操作系统集成? 如果是这样,最好的设计模式是什么,最好的技术是
我有一个搜索字段,我希望用户能够通过电话或电子邮件进行搜索。但是,我的 onclick 事件没有触发。我已经尝试过控制台工具,但似乎无法通过那里进行调试。 {% from "_form
如果重新加载接收调用的浏览器窗口,我将面临实时 Twilio 调用被丢弃的情况。有没有办法在不影响实时通话的情况下克服这种挫折? 最佳答案 Twilio 布道者在这里。 根据您的问题,我假设您使用的是
我试图在我的服务中减少我的 promise 对象。我有类似的东西 angular.module('myApp').service('testService', ['Employees','$q',
我想在我的java应用程序中构建一个电话调用器。为此,我使用了 JAIN-SIP 库。第一次 INVITE 后,系统需要代理身份验证。第二个邀请是在“AuthenticationHelperImpl.
两天前我正在开发一个 VOIP 应用程序,并成功地使用 Sinch 实现了一个普通的应用程序到应用程序调用。 .该应用程序运行良好。当我开始时,我在他们的文档中看到他们支持电话 session 。 现
我正在尝试创建一个 java 程序,它将创建 excel 文件并将其上传到谷歌驱动器中。上传后我需要它来授予权限。我已经完成了所有这些,但问题在于尝试将 excel 文件转换为 google 文件,以
我想使用 Android Sip 进行电话 session .那可能吗?有人可以举一个有效的例子吗?使用该库是否有任何限制,比如它可以在 3G 或 4G 上工作? 最佳答案 当前的 Android S
是否可以通过编程方式在 android 中接听电话? 我发现有些地方不可能,但后来安装了应用程序 https://play.google.com/store/apps/details?id=com.a
我试图在单击导航中的某个按钮后将一个类附加到 div。 $navButtons.on('click', navigationClick); // liseten to the navigation a
在 Monotouch 中是否有任何方法可以读取电话或调用者服务的当前状态? 我正在尝试寻找某种方式来读取通话是否处于事件状态或通话是否处于等待状态等。 用谷歌搜索没有找到任何结果。 希望运行一些代码
我可能正在搜索错误的内容,这可能解释了为什么我只能找到有关设置密码自动填充的信息。 我正在寻找用户能够在应用程序中输入电子邮件、电话、名字和姓氏的功能,就像某些网站能够做到的那样,选项出现在键盘上方。
我是一名优秀的程序员,十分优秀!