`

js密码强度

    博客分类:
  • js
 
阅读更多
来源一[url]http://longxingtx520.iteye.com/blog/825517
[/url]

<html>
	<head>
		<SCRIPT LANGUAGE="JavaScript">
			function passwordTest(obj) {
				var value = obj.value;
				var result = getResult(value);
				check(result);
			}
			
			function getResult(value) {
				if(value.length < 3) {
					return 0;
				}
				var i = 0;
				if(value.match(/[a-z]/ig)) {
					i++;
				}
				if(value.match(/[0-9]/ig)) {
					i++;
				}
				if(value.match(/(.[^a-z0-9])/ig)) {
					i++;
				}
				if(value.length < 6 && i > 0) {
					i--
				}
				return i;
			}
			
			function check(num) {
				if(num == 0) {
					$("note").innerHTML = "密码太短";
				} else if (num == 1) {
					$("note").innerHTML = "密码强度差";
				} else if (num == 2) {
					$("note").innerHTML = "密码强度良好";
				} else if (num == 3) {
					$("note").innerHTML = "密码强度高";
				} else {
					$("note").innerHTML = "未知错误";
				}
			}
			
			function $(id) {
				return document.getElementById(id);
			}
		</SCRIPT>
	</head>
	
	<body>
		密码:<input type="password" id="password"  onKeyUp="passwordTest(this)" />
		<div id="note" > </div>
	</body>
</html>




----------------------------
/**
 *  计算密码强度方法1
 */
function CharMode(iN) {
	if (iN >= 65 && iN <= 90) return 2;
	if (iN >= 97 && iN <= 122) return 4;
	else return 1;
}
	
/**
 *  计算密码强度方法2
 */
function bitTotal(num) {
	var modes = 0;
	for (var i=0;i<3;i++) {
		if (num & 1) modes++;
		num >>>= 1;
	}
	return modes;
}
			
function setStrong(e) {
	for (var i=1;i<=3;i++) {
		try {
			var el = document.getElementById("passW"+i);
			if(!el) return;
			el.className = el.className.replace(new RegExp("(^|\\s+)" + "passWcurr" + "(\\s+|$)"), ' ');
		}catch (e) {}
	}
	var password = e.value;
	var Modes = 0;
	var n = password.length;
	for (var i=0;i<n;i++) {
		Modes |= CharMode(password.charCodeAt(i));
	}
	var btotal = bitTotal(Modes);
	if (n >= 10) btotal++;
	switch(btotal) {
		case 1:
			try {
				var el = document.getElementById("passW1");
				if(!el) return;
				var clsNames = el.className.split(/\s+/);
				if(!$inArr("passWcurr", clsNames, true)) el.className += ' '+"passWcurr";
			}catch (e) {}
			return;
		case 2:
			try {
				var el = document.getElementById("passW2");
				if(!el) return;
				var clsNames = el.className.split(/\s+/);
				if(!$inArr("passWcurr", clsNames, true)) el.className += ' '+"passWcurr";
			}catch (e) {}
			return;
		case 3:
			try {
				var el = document.getElementById("passW3");
				if(!el) return;
				var clsNames = el.className.split(/\s+/);
				if(!$inArr("passWcurr", clsNames, true)) el.className += ' '+"passWcurr";
			}catch (e) {}
			return;
		case 4:
			try {
				var el = document.getElementById("passW3");
				if(!el) return;
				var clsNames = el.className.split(/\s+/);
				if(!$inArr("passWcurr", clsNames, true)) el.className += ' '+"passWcurr";
			}catch (e) {}
			return;
		default:
			return;
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics