js密码强度校验的正则表达式

JavaScript027

js密码强度校验的正则表达式,第1张

使用组合的形式:

纯数字 /\d+/

纯字母小写/[a-z]+/

纯字母大写/[A-Z]+/

纯特殊符号/[~!@#\$%^&*\(\)\{\},.\?\/'"]/

假设1-4的权重分别为2,4,8,16;

则拿1-4分别检测用户的密码,如果有,则或上相应的权重。

然后看这个数字是处于2-30之间,然后根据这个数算出强度即可

/**

 * 检验密码强度

 * @param string  {String}  要检查的密码字符串

 * @return  {Boolean}  返回true就是符合强度要求,false就是不符合

 */

var validate = function (string) {

    var rules = [

        /[A-Z]/,

        /[a-z]/,

        /\d/,

        /[!|@|#|$]/

    ]

    var count = 0

    for (var i = 0 i < rules.length i += 1) {

        if (rules[i].test(password))

            count += 0

    }

    return count > 2

}

var R = /^(?=[^]*\d)(?=[^]*[A-Za-z])(?=([^]*[^\dA-Za-z]){2})/

R.test('aaaa')//false

R.test('1111')//false

R.test('****')//false

R.test('a1a*')//false

R.test('a+Z')//false

R.test('8Z)(')//true

R.test('9asd8dsa7zxc43fds2wqe1')//false

R.test('9as+d8dsa7zxc43fds2wqe1')//false

R.test('9as+d8dsa7zxc43fds2wqe_1')//true