是否有标准代码可以将电话号码格式化为某种“标准格式”

时间:2012-11-07 04:31:08

标签: string

例如,假设我们知道默认区号为21,国家/地区代码为62

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

基本上这看起来很简单。但是,我想知道电话号码是否有规则。

例如,如果电话号码的长度是10,那么前2位是国家代码吗?

IOS使用什么样的格式?

3 个答案:

答案 0 :(得分:1)

可悲的是,不同的国家/地区有不同的标准,甚至各国都有不同的标准,您可以看到here

你可以根据不同的规则定位不同的县,或者只选择你认为合理的格式,或者允许用户更改格式。

答案 1 :(得分: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]);
}

答案 2 :(得分:0)

https://github.com/rmaddy/RMPhoneFormat#rmphoneformat

某些问题的某些帖子提到了这一点。这是我将要使用的。