2012-11-07 47 views
2

例如,假设我们知道默认的区号是21,和国家代码是62有没有一个标准的代码,它可以格式化电话号码为一些“标准格式”

123456789 -> 6221123456789 
021123456789 -> 6221123456789 
022123456789 -> 6222123456789 
6222123456789 -> 6222123456789 
(62)21 123456789 -> 6221123456789 

基本上,这似乎简单。但是,我不知道是否有对电话号码的规则。

例如,是第一2位总是国家代码,如果电话号码的长度为10?

什么格式是IOS使用反正排序?

回答

1

可悲的是不同的国家有不同的标准,甚至国家有它们使用不同的标准,你可以看到here

你既可以针对不同的规则,不同的县,只需选择你认为有道理的格式,或允许用户更改格式。

1

使用此 https://github.com/iziz/libPhoneNumber-iOS

NBPhoneNumberUtil *phoneUtil = [NBPhoneNumberUtil sharedInstance]; 

NSError *aError = nil; 
NBPhoneNumber *myNumber1 = [phoneUtil parse:@"6766077303" defaultRegion:@"AT" error:&aError]; 
if (aError == nil) 
{ 
    NSLog(@"isValidPhoneNumber ? [%@]", [phoneUtil isValidNumber:myNumber1] ? @"YES":@"NO"); 
    NSLog(@"E164   : %@", [phoneUtil format:myNumber1 numberFormat:NBEPhoneNumberFormatE164]); 
    NSLog(@"INTERNATIONAL : %@", [phoneUtil format:myNumber1 numberFormat:NBEPhoneNumberFormatINTERNATIONAL]); 
    NSLog(@"NATIONAL  : %@", [phoneUtil format:myNumber1 numberFormat:NBEPhoneNumberFormatNATIONAL]); 
    NSLog(@"RFC3966  : %@", [phoneUtil format:myNumber1 numberFormat:NBEPhoneNumberFormatRFC3966]); 
} 
else 
{ 
    NSLog(@"Error : %@", [aError localizedDescription]); 
}