使用组合的形式:
纯数字 /\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