繁体   English   中英

如何找到3个或更多连续的字符?

[英]How to find 3 or more consecutive characters?

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

我发现这一个RegEx匹配两个或多个相同的字符非连续但它只匹配重复的逗号。

这是场景:

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

2312aa32aa - 没有重复的角色

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

使用后引用:/(.) /(.)\\1\\1/

例:

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

JSFiddle示例

以下怎么样?

(。)\\ 1 {2,}

你只需通过for循环迭代字符串并比较一个和下一个如果两者相同然后再增加1(声明一个变量用于计数)。最后检查计数值如果它大于0那么字符串重复模式...

试试这个正则表达式:(。)\\ 1 \\ 1+

/(.)\1\1+/g

点匹配任何字符,然后我们正在寻找连续多个字符。 我在http://regexpal.com/上测试了它,我相信它能做你想要的

你可以这样使用:

str.match(/(.)\1\1+/g).length

只需检查它是否为0

看到这个在行动.... http://jsfiddle.net/yentc/2/

你可以这样做:

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM