是否有任何模块可以帮助我比较电话号码是否相等?
例如,以下三个数字相同(从英国拨号时)
+44 (0)181 1234123
00441811234123
0181 1234123
是否有perl模块可以告诉我这个?
答案 0 :(得分:3)
我在CPAN上看到的最近的是Number::Phone这是一个活跃的项目,并且支持英国电话号码。它应该适用于您提供的具体示例。支持少数几个国家。
如果你有其他国家的电话号码,由于本地的格式化特性,事情会变得更加困难。
答案 1 :(得分:2)
假设您需要的代码不存在,并且您必须自己编写代码,则需要执行两项基本操作:
应用上下文。您可以在此处考虑拨号电话的位置。如果呼叫不是国际呼叫,则提供国家/地区代码;如果呼叫不是长途呼叫,则提供区号等。当然,这需要一些区域规则。
归一化。删除无意义的空格和标点符号,将国际拨号前缀(NANPA中的“011”,世界其他大部分地区的“00”,偶尔会有许多奇怪的东西)转换为标准的“+”。
在正确完成这两个步骤之后,所有实际等效数字的输入应该给出相同的输出字符串。