要检查字符串是否没有连续重复 3 次或更多次的字符(任何类型,甚至是新行):
/^(?!.*(.)\1{2})/s
您还可以检查输入字符串是否与此正则表达式不匹配。在这种情况下,您也可以知道连续重复 3 次或更多次的字符。请注意,这与上面完全相同,只是将负前瞻内的正则表达式(?!pattern)
取出。
/^.*(.)\1{2}/s
如果要添加验证字符串仅包含来自 的字符[a-z]
,并且您认为aaA
无效:
/^(?!.*(.)\1{2})[a-z]+$/i
如您所见,i
标志(不区分大小写)会影响捕获的文本与当前输入的比较方式。
如果要允许空字符串通过,请更改+
为。*
如果要考虑aaA
有效,并且要允许大写和小写:
/^(?!.*(.)\1{2})[A-Za-z]+$/
乍一看,可能和上一个一样,但是由于没有i
标志,所以捕获的文本不会进行不区分大小写的匹配。
以下是失败的答案,您可以忽略它,但您可以阅读它以获得乐趣。
您可以使用此正则表达式来检查字符串是否没有 3 个重复字符(任何类型,甚至是新行)。
/^(?!.*(.)(?:.*\1){2})/s
您还可以检查输入字符串是否与此正则表达式不匹配。在这种情况下,您也可以知道字符被重复超过或等于 3 次。请注意,这与上面完全相同,只是将负前瞻内的正则表达式(?!pattern)
取出。
/^.*(.)(?:.*\1){2}/s
如果要添加验证字符串仅包含来自 的字符[a-z]
,并且您认为aaA
无效:
/^(?!.*(.)(?:.*\1){2})[a-z]+$/i
如您所见,i
标志(不区分大小写)会影响捕获的文本与当前输入的比较方式。
如果要考虑aaA
有效,并且要允许大写和小写:
/^(?!.*(.)(?:.*\1){2})[A-Za-z]+$/
乍一看,可能和上一个一样,但是由于没有i
标志,所以捕获的文本不会进行不区分大小写的匹配。