Javascript 如果两个或多个重复字符

Javascript 如果两个或多个重复字符,javascript,angularjs,regex,Javascript,Angularjs,Regex,我尝试过的正则表达式包括: 1> var temp = "(.)\\1{2,}"; 2> var temp = "^(?!.*(.)\\1{2,})"; testExp = new RegExp(temp); 我得到的结果是: 1> var temp = "(.)\\1{2,}"; 2> var temp = "^(?!.*(.)\\1{2,})"; testExp = new RegExp

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

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

       testExp = new RegExp(temp);
我得到的结果是:

      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.
这就是我的正则表达式只考虑连续的重复字符,而不考虑其他字符。

尝试以下方法:

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

       testExp = new RegExp(temp);
var str="sdsdsd";
var hasDuplicates = (/([a-zA-Z]).*?\1/).test(str)        
alert("repeating string "+hasDuplicates);

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

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

       testExp = new RegExp(temp);
/(.)(?:.*\1){2,}/
或者,如果输入字符串中可能有换行符:

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

       testExp = new RegExp(temp);
/([\s\S])(?:[\s\S]*\1){2,}/
[\s\s]
(或JS regex中的
[^]
将匹配任何字符,
将匹配除换行字符以外的任何字符

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

       testExp = new RegExp(temp);
详细信息

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

       testExp = new RegExp(temp);
  • ()
    -捕获组#1匹配任意1个字符
  • (?:.*\1){2,}
    -2次或多次连续出现:
    • *
      -除换行符以外的任何0+字符
    • \1
      -反向引用组1值(与组1中捕获的字符相同)

也许你想尝试<代码> /(.+)\ 1 { 2,} /测试(TEMP)< /C> > WikTrReTrBiE.EW。它不考虑像SDSDY这样的情况。对,它没有,因为你的第一个例子包含连续的重复字符,而这个例子没有。也许你想要“WikTrrBiBi”,所以我在寻找ReXEP,它不考虑连续性和工作无关。Stribizew干净完美!谢谢你提供的详细信息。对我来说,它适用于IE和Chrome<代码>如果('1ss1f1h1')。匹配(/(.).*\1/){console.log('ok')}