ABAddressBook电话号码通用格式

时间:2013-07-16 08:31:19

标签: ios objective-c phone-number country-codes

对于我的应用程序,我需要一个通用的电话号码格式化方案。不幸的是,电话簿中的数字不共享相同的方案。 E.g。

  • (707)555-1854
  • 555-610-6679
  • 06641234567
  • 43 664 1234567
  • 00436641234567

iOS平台上是否有某种数字格式化程序可以将这些数字转换为如下所示的方案:

+ 'CountryCode''Number'

如何为本地号码获取正确的国家/地区代码?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

虽然不是您正在寻找的完美匹配,但有一个可能有用的开源库:RMPhoneFormat(https://github.com/rmaddy/RMPhoneFormat)。它利用Apple的二进制文件PhoneFormats.dat来格式化基于给定语言环境的数字。格式化数字很简单:

RMPhoneFormat *fmt = [[RMPhoneFormat alloc] init];
NSLog(@"num: %@", [fmt format:@"7075551854"]); // outputs (707) 555-1854 for US locale

它也适用于国家/地区代码,因此如果您向美国境内的数字添加+1,则这些数字的格式如下:+1 (707) 555-1854。对于以零开头的欧洲数字,您可以修剪前导0并添加相应的国家/地区代码。