用于检查是否包含超过 2 个重复字符的正则表达式

Regex expression to check if contains more than 2 repeated characters

我正在检查我的验证表单是否有重复超过两倍的相同字符。

我试过这个表达式 ([a-zA-Z0-9])\1{2,} 但它不能正常工作,因为如果我添加 aaA 它会找到字符串但它不应该因为“ aaA”是允许的。它也不检查它是否重复了一个特殊字符。

以下是我应用代码的方式:

this.form = this.formBuilder.group(
      {
        newpassword: new FormControl(
          '',
          Validators.compose([
            Validators.required,
            CustomValidators.patternValidator(/[(\[a-zA-Z0-9\])\1{2,}]/, {
              hasRepeatedCharacters: true,
            }),
          ])
        ),
      },
      { validators: this.password }
    );

有什么想法吗?

使用以下正则表达式检测重复 2 次或更多次的任何字符:

(.){2,}

为了同时捕获 aaA(无论大小写重复的字母),您需要添加 case-insensitive i 标志。

如果我理解正确,您认为无效的内容是这样的:

/(.){2,}/