代码改变世界

iOS - 从一段字符串中提取出手机号码

2018-01-29 09:46  菜鸟Alex  阅读(2369)  评论(0编辑  收藏  举报
  • 正则表达式只匹配数字
  • 从匹配数字开始位置,长度正好为11位的提取出来
    NSString *string;
    NSString *pattern;
    
    pattern=@"\\d*";
    
    string=@"2017-02-12 上报人:张三 15930384756";
    NSError *error;
    NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
    
    NSLog(@"%@",error);
    
    [regex enumerateMatchesInString:string options:NSMatchingReportProgress range:NSMakeRange(0, string.length) usingBlock:^(NSTextCheckingResult * _Nullable result, NSMatchingFlags flags, BOOL * _Nonnull stop) {
        if (NSMatchingReportProgress==flags) {
            
        }else{
            /**
             *  系统内置方法
             */
            if (NSTextCheckingTypePhoneNumber==result.resultType) {
                NSLog(@"%@",[string substringWithRange:result.range]);
            }
            /**
             *  长度为11位的数字串
             */
            if (result.range.length==11) {
                NSLog(@"%@",[string substringWithRange:result.range]);
            }
        }
    }];