如何检查与模式匹配的整个字符串,而不是使用NSRegularExpression查找匹配的子字符串?

时间:2016-05-31 07:50:49

标签: objective-c nsregularexpression

NSRegularExpression类有搜索与模式匹配的子字符串的方法,例如- numberOfMatchesInString:options:range:

但是,如果我想检查整个字符串是否与模式匹配,我该怎么办? 在我的情况下,我需要检查输入的数字,其长度为6..10位数,不再有任何其他符号。

我的代码可以检查最小字符串长度:

NSUInteger min = 6, max = 10;
NSString *pattern = [NSString stringWithFormat:@"\\d{%u,%u}", min, max];
NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
NSString *number = [_numberTextField text];
NSUInteger matches = [re numberOfMatchesInString:number options:0 range:NSMakeRange(0, [number length])];

但它可以找到额外的符号,数字或其他因为字符串具有匹配的子字符串。

例如,如果我输入12345,则regex会说该字符串没有匹配项 使用12345678901值(11位)结果将是1匹配,但在这种情况下,字符串长度大于10并且我想要结果

0 个答案:

没有答案