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