在大多数平台注册一个新账户,输入密码是必须的,有时候为了提醒用户设置一个相对安全的密码,会检测密码强度。
/**
* @param input (密码框)
* @param notice (文本提示)
* 检测密码强度 供参考
**/
function checkPasswordStrength(input,notice){
var str = ['密码强度:弱','密码强度:中','密码强度:强'],
getStrength = function(str){
var strength = 0;
if (str.length < 6) return strength;
if (/d/.test(str)) strength++; //数字
if (/[a-z]/.test(str)) strength++; //小写
if (/[A-Z]/.test(str)) strength++; //大写
if (/W/.test(str)) strength++; //特殊字符
switch (strength) {
case 1:
return 1;
break;
case 2:
return 2;
break;
case 3:
case 4:
return str.length < 12 ? 3 : 4
break;
}
},
strong;
input.oninput = input.onpropertychange = function(){
strong = getStrength(input.value);
switch (strong){
case 0:
notice.innerHTML = '';
break;
case 1:
case 2:
notice.innerHTML = str[0];
break;
case 3:
notice.innerHTML = str[1];
break;
case 4:
notice.innerHTML = str[2];
break;
}
}
}
//use
var input = document.getElementById('password'), notice = document.getElementById('notice');
checkPasswordStrength(input,notice); }
很简单的一个检测函数,在用户输入时检测密码是否有数字、小写字母、大写字母、特殊符号,根据输入判断密码强度。
其中使用了事件:oninput 、 onpropertychange 来监听输入框值变化。