如何从字符串中获取电话号码?

时间:2018-06-01 09:58:46

标签: objective-c

我想从NSString中提取电话号码。

例如:在字符串Nandu @ + 91-(123)-456-7890中,我想提取+ 91-(123)-456-7890。

我尝试过像

这样的代码
NSString *myString = @"Nandu @ +91-(123)-456-7890";
NSString *myRegex = @"\\d{2}+\\d{3}-\\d{3}-\\d{4}";
NSRange range = [myString rangeOfString:myRegex options:NSRegularExpressionSearch];

NSString *phoneNumber = nil;
if (range.location != NSNotFound) {
    phoneNumber = [myString substringWithRange:range];
    NSLog(@"%@", phoneNumber);
} else {
    NSLog(@"No phone number found");
}

如何获得+91的电话号码。

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式模式
(\+\d{2}-\(\d{3}\)-\d{3}-\d{4})

https://regexr.com/3qcsi

答案 1 :(得分:1)

使用NSCharacterSet您可以获得输出。如果您有任何疑问,请参阅下面的代码并告诉我。

NSString *originalString = @"Nandu @ +91-(123)-456-7890";

NSString *cleanedString = [[originalString componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];

NSLog(@"%@", cleanedString); //+91-(123)-456-7890

答案 2 :(得分:0)

您可以使用componentsSeparatedByString

 NSString *originalString = @"Nandu @ +91-(123)-456-7890";    
    NSArray *arrayWithTwoStrings = [originalString componentsSeparatedByString:@"+"];
    NSString *mobileNumberstring = [NSString stringWithFormat:@"+%@",[arrayWithTwoStrings objectAtIndex:1]];
NSLog (@"%@",mobileNumberstring);