【问题标题】:How to get phone number from string?如何从字符串中获取电话号码?
【发布时间】:2018-06-01 09:58:46
【问题描述】:

我想从 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 的电话号码。

【问题讨论】:

  • 你会想要使用 NSRegularExpression 类。
  • 我正在使用 NSRegularExpression 类但是如何定义 +91-()

标签: objective-c


【解决方案1】:

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

https://regexr.com/3qcsi

【讨论】:

    【解决方案2】:

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

    NSString *originalString = @"Nandu @ +91-(123)-456-7890";
    
    NSString *cleanedString = [[originalString componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
    
    NSLog(@"%@", cleanedString); //+91-(123)-456-7890
    

    【讨论】:

    • 如果是我的原始字符串是@"Nand​​u 1岁宝宝和他的ph:@+91-(123)-456-7890";如何编写代码?
    【解决方案3】:

    你可以使用componentsSeparatedByString

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

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 2023-03-16
      • 2013-10-01
      • 2016-11-07
      相关资源
      最近更新 更多