正则表达式拒绝数字序列
Regex to reject sequence of Digits
我需要验证 phone 号码。下面是代码片段
-(BOOL) validatePhone:(NSString*) phoneString
{
NSString *regExPattern = @"^[6-9]\d{9}$"; ORIGINAL
// NSString *regExPattern = @"^[6-9](\d)(?!+$)\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;
}
我想拒绝序列示例中的 phone 号码
9999999999, 6666677777
您似乎想禁止 5 个或更多相同的连续数字。
使用
@"^[6-9](?!\d*(\d)\1{4})\d{9}$"
详情
^
- 字符串开头
[6-9]
- 从 6
到 9
的数字
(?!\d*(\d){4})
- 如果在当前位置的右侧紧邻有
\d*
- 0+ 位
(\d)
- 捕获到第 1 组的数字
{4}
- 在第 1 组中捕获的相同数字重复四次
\d{9}
- 任意 9 位数字
$
- 字符串结尾(替换为 \z
以匹配字符串的结尾,不允许在字符串中最后一个 LF 符号之前进行匹配)。
请注意,\d
在 ICU 正则表达式库中支持 Unicode,因此使用 [0-9]
而不是 \d
可能更安全。
我需要验证 phone 号码。下面是代码片段
-(BOOL) validatePhone:(NSString*) phoneString
{
NSString *regExPattern = @"^[6-9]\d{9}$"; ORIGINAL
// NSString *regExPattern = @"^[6-9](\d)(?!+$)\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;
}
我想拒绝序列示例中的 phone 号码 9999999999, 6666677777
您似乎想禁止 5 个或更多相同的连续数字。
使用
@"^[6-9](?!\d*(\d)\1{4})\d{9}$"
详情
^
- 字符串开头[6-9]
- 从6
到9
的数字
(?!\d*(\d){4})
- 如果在当前位置的右侧紧邻有\d*
- 0+ 位(\d)
- 捕获到第 1 组的数字{4}
- 在第 1 组中捕获的相同数字重复四次
\d{9}
- 任意 9 位数字$
- 字符串结尾(替换为\z
以匹配字符串的结尾,不允许在字符串中最后一个 LF 符号之前进行匹配)。
请注意,\d
在 ICU 正则表达式库中支持 Unicode,因此使用 [0-9]
而不是 \d
可能更安全。