检测密码强度
在大多数平台注册一个新账户,输入密码是必须的,有时候为了提醒用户设置一个相对安全的密码,会检测密码强度。
/** * @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 来监听输入框值变化。