Javascript 如何查找3个或更多连续字符?

Javascript 如何查找3个或更多连续字符?,javascript,jquery,Javascript,Jquery,我正在检查密码。其中一个功能是查找输入的密码是否连续重复。我还没有代码,因为我不知道怎么做 我找到了这个,但它只匹配重复的逗号 以下是场景: 5236aaa121-重复模式,因为a连续重复3次 2312aa32aa-无重复字符 111111 ASD-重复模式因为1连续重复多次您只需通过for循环迭代字符串,并将一个与下一个进行比较,如果两者相同,则增加一个(为计数声明一个变量)。。最后检查计数值,如果大于0,则字符串重复模式…使用反向引用:/()\1\1/ 例如: var hasTripple

我正在检查密码。其中一个功能是查找输入的密码是否连续重复。我还没有代码,因为我不知道怎么做

我找到了这个,但它只匹配重复的逗号

以下是场景:

5236aaa121-重复模式,因为
a
连续重复3次

2312aa32aa-无重复字符


111111 ASD-重复模式因为
1
连续重复多次

您只需通过for循环迭代字符串,并将一个与下一个进行比较,如果两者相同,则增加一个(为计数声明一个变量)。。最后检查计数值,如果大于0,则字符串重复模式…

使用反向引用:
/()\1\1/

例如:

var hasTripple = /(.)\1\1/.test('xyzzzy');

您可以这样做:

var password = '5236aaa121';

for(var i = 0; i< password.length; i++) {
    var numberOfRepeats = CheckForRepeat(i, password, password.charAt(i));
    //do something

}

function CheckForRepeat(startIndex, originalString, charToCheck) {
    var repeatCount = 1;
    for(var i = startIndex+1; i< password.length; i++) {
        if(originalString.charAt(i) == charToCheck) {
            repeatCount++;
        } else {
        return repeatCount;
        }   
    }
    return repeatCount;
}
str.match(/(.)\1\1+/g).length
var密码='5236aaa121';
对于(变量i=0;i
试试这个正则表达式: ()\1\1+

点匹配任何字符,那么我们将在一行中查找多个字符。我试过了,我相信它能满足你的需求

您可以这样使用:

var password = '5236aaa121';

for(var i = 0; i< password.length; i++) {
    var numberOfRepeats = CheckForRepeat(i, password, password.charAt(i));
    //do something

}

function CheckForRepeat(startIndex, originalString, charToCheck) {
    var repeatCount = 1;
    for(var i = startIndex+1; i< password.length; i++) {
        if(originalString.charAt(i) == charToCheck) {
            repeatCount++;
        } else {
        return repeatCount;
        }   
    }
    return repeatCount;
}
str.match(/(.)\1\1+/g).length
只需检查它是否为0


要看到这一点在起作用

下一个怎么样

()\1{2,}


如果有人想在他们的密码中重复一个字符多次,你应该让他们重复。实际上,通过添加这些任意的限制,你正在降低系统的安全性。如果你警告用户,这将成为一个限制,因为用户会想“哦,我已经被警告过了;我不应该这样做”.如果你不想回答,没关系。“我会调查的。”德里克,你不是我的老板,告诉我我要做什么。如果你不想回答,就忽略这个问题。我只是奉命行事。如何执行这个命令?我不知道如何使用它。例如,请尝试以下代码:
var patt=/()\1\1/;警报(部分测试(“1234567890o”);警报(模式测试(“Moo”);警报(模式测试(“Mooo”)您在哪个平台上?这是在JavaScript中,还是服务器端的某个地方?很好。听起来你不再需要它了,但这里有一个简单的jsfiddle:另外(我想把这句话和回答你的实际问题分开),我肯定会重复上面关于如果这有助于密码安全的话,就推回的一些评论。也许你的老板也会问你一个问题:)我漏掉了一个括号,循环是错误的。我编辑并测试了它,现在它可以工作了,我只给你+1,因为@jmar777首先得到了它,它连续重复了3次或更多次,(.)表示“任意字符”,紧接着的\1{2,}表示“同一字符至少出现两次”。我觉得这是最简洁的正则表达式。小心点。当OP只想让“mooo”通过时,这一个让“moo”通过。
blah blaah blaah
只有1个匹配项而不是2个匹配项。我需要3次或3次以上连续重复的字符也可能没有必要,但这也会给你匹配的数量,并将AAAAA作为一个单一的匹配,因为它是一组连续字符。