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

我正在进行密码检查。 这些function之一是查找是否连续重复输入的密码。 我还没有代码,因为我不知道怎么做。

我发现这一个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; }