正则表达式,以检查是否包含两个以上的重复字符

问题描述

我正在检查我的验证表中是否重复了同一字符两次以上。

我已经尝试过该表达式([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次或更多次的任何字符:

(.)\1{2,}

同样也要捕获aaA(无论大小写如何重复的字母),您都需要添加不区分大小写的i标志。

,

如果我正确理解了您认为无效的内容,则需要这样做:

/(.)\1{2,}/