如果两个或多个重复的字符,则返回true

时间:2018-01-29 10:51:16

标签: javascript angularjs regex

我尝试过的正则表达式包括:

      1> var temp = "(.)\\1{2,}";
      2> var temp = "^(?!.*(.)\\1{2,})";

       testExp = new RegExp(temp);

我得到的输出是:

  testExp.test("sss is true")
  testExp.test("ss is false")
  testexp.test("sdsdsd is false") //which should be true.

这是我的正则表达式只考虑连续重复的字符而不考虑其他字符。

3 个答案:

答案 0 :(得分:1)

尝试一下像:

rs2.Open

答案 1 :(得分:1)

您可以在.*之前添加\1(以匹配换行符之外的任何0 +字符)并使用以下正则表达式:

/(.)(?:.*\1){2,}/

或者,如果输入字符串中可以有换行符:

/([\s\S])(?:[\s\S]*\1){2,}/

请参阅regex demo[\s\S](或JS正则表达式中的[^])将匹配任何char,而.匹配任何char但是换行符。

<强>详情

  • (.) - 捕获与任何1个字符匹配的组#1
  • (?:.*\1){2,} - 连续发生2次或以上:
    • .* - 除了换行符之外的任何0 +字符
    • \1 - 对第1组值的反向引用(与第1组中捕获的字符数相同)。

答案 2 :(得分:0)

var text = 'abcdeaf';
if (text.match(/(.).*\1/) {} else {}