我需要确认电话号码。下面是代码片段
-(BOOL) validatePhone:(NSString*) phoneString
{
NSString *regExPattern = @"^[6-9]\\d{9}$"; ORIGINAL
// NSString *regExPattern = @"^[6-9](\\d)(?!\1+$)\\d*$";
NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger regExMatches = [regEx numberOfMatchesInString:phoneString options:0 range:NSMakeRange(0, [phoneString length])];
NSLog(@"%lu", (unsigned long)regExMatches);
if (regExMatches == 0) {
return NO;
}
else
return YES;
}
我想拒绝sequnce示例9999999999,6666677777中的电话号码。
发布于 2018-04-09 10:43:04
似乎您想不允许5和更多相同的连续数字。
使用
@"^[6-9](?!\\d*(\\d)\\1{4})\\d{9}$"
详细信息
^
-字符串的开始[6-9]
-从6
到9
的数字(?!\d*(\d)\1{4})
-如果在当前位置的右侧立即有,则会导致匹配失败。\d*
- 0+数字(\d)
-被捕获到第一组的数字\1{4}
-第一组中捕获的相同数字重复了四次
\d{9}
-任意9位数$
-字符串的末端(用\z
代替以匹配字符串的末尾,在字符串中最后的LF符号之前不允许匹配)。请注意,在ICU regex库中,\d
是可识别的Unicode,因此使用[0-9]
而不是\d
可能更安全。
https://stackoverflow.com/questions/49729661
复制相似问题