检测密码强度

  在大多数平台注册一个新账户,输入密码是必须的,有时候为了提醒用户设置一个相对安全的密码,会检测密码强度。 

/**
 * @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 来监听输入框值变化。

  

 

posted @ 2015-07-20 14:38  eyeear  阅读(611)  评论(0编辑  收藏  举报