var temp = "^(?!.*(.)\\1{2,})"; test-6ren">
gpt4 book ai didi

javascript - 如果两个或多个重复字符返回 true

转载 作者:行者123 更新时间:2023-11-29 20:57:35 25 4
gpt4 key购买 nike

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

      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 之前添加 .*(以匹配除换行符以外的任何 0+ 个字符)并使用以下正则表达式:

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

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

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

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

详情

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

关于javascript - 如果两个或多个重复字符返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48499478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com