我的NSString
包含格式化的电话号码,例如(123) 456-7890
。我想找到匹配用户未格式化输入的子字符串。
因此,如果输入为234
,则匹配的子字符串为NSRange(2,5)
(23) 4
)。我该如何实现find方法?
谢谢!
答案 0 :(得分:1)
接受用户输入并在每个数字之间插入[( )-]*
,然后使用正则表达式查找匹配项(如果有)。
NSString *phoneNumber = @"(123) 456-7890";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"2[( )-]*3[( )-]*4"
options:NSRegularExpressionCaseInsensitive
error:&error];
[regex enumerateMatchesInString:phoneNumber options:0 range:NSMakeRange(0, [phoneNumber length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
// your code to handle matches here
NSLog(@"match at location: %lu length: %lu", (unsigned long)match.range.location, (unsigned long)match.range.length);
}];