从电话号码中分离区号-iOS

从电话号码中分离区号-iOS,ios,regex,Ios,Regex,如何从任何给定的电话号码中解析出区号?例如,如果我输入208-399-2777,208是美国的区号。然而,在巴西,电话号码78 5239-6822有一个两位数的区号 NSTextCheckingResult是否提供这些功能?这将获得电话号码字符串中的第一组号码 NSString *pattern = @"^\\d+"; NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern:pattern

如何从任何给定的电话号码中解析出区号?例如,如果我输入
208-399-2777
,208是美国的区号。然而,在巴西,电话号码
78 5239-6822
有一个两位数的区号

NSTextCheckingResult
是否提供这些功能?

这将获得电话号码字符串中的第一组号码

NSString *pattern = @"^\\d+";
NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern:pattern
                                                          options:0
                                                          error:nil];
说明:

  • ^
    匹配字符串的开头
  • \d+
    匹配一个或多个数字

注意:如果您的电话号码的格式没有空格(例如,
1234567890
),它将不起作用。

根据您的问题的复杂性,修补字符串可能不起作用,您可能想了解更多关于区号的信息,请查看谷歌的libphonenumber,目标C有一个包装器。

美国数字的格式是
(208)399-2777
,或者本地数字的格式是
555-1212
。鉴于世界各地有大量的电话号码格式,这可能相当困难。@rmaddy同意,这不是一个小问题。只是出于好奇,本地号码可以是手机号码吗?我不确定。自从我拿到第一部手机以来,我住的地方一直在拨打10位数的电话。如果您居住在一个7位数拨号的地区,并且您的手机有一个类似的号码,那么您可能不需要区号来拨打同一地区的电话。