0

我现在正在使用密码,并想让用户创建复杂的密码。我使用 jQuery 来检查密码是否足够长以及它的强度取决于使用的字符。尽管如此,仍然无法弄清楚如何让用户创建没有重复字符的密码,因此他无法制作像“111111111111111111111111”或“1qAz1qAz1qAz”等密码。我的代码在这里:

$("#new_pass").keyup(function() {
    var newpass = $(this).val();
    var chars = 0;
    if((/[a-z]/).test(newpass)) chars +=  26;
    if((/[A-Z]/).test(newpass)) chars +=  26;
    if((/[0-9]/).test(newpass)) chars +=  10;
    if((/[^a-zA-Z0-9]/).test(newpass)) chars +=  32; 
    var strength = Math.pow(chars, newpass.length)
        alert(strength)
}

提前致谢。

4

1 回答 1

2

也许你可以使用这样简单的东西:

 /(\w+)(?=\1)/g

它匹配一个或多个单词字符,然后检查它们后面是否跟着那个确切的字符串。

基本测试(在 Coffeescript 中)

 pattern = /(\w+)(?=\1)/g
 console.log pattern.test("1qAz1qAz1qAz")
 console.log pattern.test("111111111111111")
 console.log pattern.test("abcdefg")         
 console.log pattern.test("abccdefg")

输出:

 true
 true
 false
 true

作为旁注,大小写确实很重要,例如:

 pattern.test("abcCdefg")

实际上会返回false

于 2012-04-28T23:02:50.040 回答