我需要确认电话号码。下面是代码片段
-(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
复制相似问题