如何格式化没有区号的电话号码?

时间:2018-04-05 07:58:24

标签: swift swift3

我有以下格式的电话号码。

+1-541-754-3010,
1-541-754-3010,
001-541-754-3010,
(541) 754-3010,
+91 5417543010,
+91-5417543010,
(+91)-5417543010

我想从上面格式的电话号码中删除区号。只需要一个电话号码。     所以输出应该是这样的     5417543010

我怎么能这样做很快?

2 个答案:

答案 0 :(得分:1)

作为@TheTiger提案的替代方案,您可以使用PhoneNumberKit

wchar_t *program = Py_DecodeLocale(argv[0], NULL);
Py_SetProgramName(program);

答案 1 :(得分:0)

电话号码格式化并非易事。最好使用此Google libphonenumber库进行电话号码格式化,这甚至会将区号与完整的电话号码分开。以下是样本的快速浏览。 图书馆也很快。

NBPhoneNumberUtil *phoneUtil = [[NBPhoneNumberUtil alloc] init];
NSError *anError = nil;
NBPhoneNumber *myNumber = [phoneUtil parse:@"6766077303"
                          defaultRegion:@"AT" error:&anError];
if (anError == nil) {
   NSLog(@"isValidPhoneNumber ? [%@]", [phoneUtil isValidNumber:myNumber] ? @"YES":@"NO");

   // INTERNATIONAL : +43 676 6077303
   NSLog(@"INTERNATIONAL : %@", [phoneUtil format:myNumber
                                   numberFormat:NBEPhoneNumberFormatINTERNATIONAL
                                          error:&anError]);
   // NATIONAL      : 0676 6077303
   NSLog(@"NATIONAL      : %@", [phoneUtil format:myNumber
                                   numberFormat:NBEPhoneNumberFormatNATIONAL
                                          error:&anError]);

} else {
   NSLog(@"Error : %@", [anError localizedDescription]);
}

NSLog (@"extractCountryCode [%@]", [phoneUtil extractCountryCode:@"823213123123" nationalNumber:nil]);

NSString *nationalNumber = nil;
NSNumber *countryCode = [phoneUtil extractCountryCode:@"823213123123" nationalNumber:&nationalNumber];