检测密码强度的简单JS代码
<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=utf-8"
/>
<title>密码强度</title>
<style
type="text/css">
body{
font-size:12px;
font-family: arial,
helvetica,
sans-serif;
margin:0;
}
form{
margin:2em;
}
#chkresult{margin-left:53px;height:15px;}
</style>
</head>
<body>
<form
name="form1">
<label for="pwd">用户密码</label>
<input
type="password" name="pwd" onblur="chkpwd(this)" />
<div
id="chkresult"></div>
<label
for="pwd2">重复密码</label>
<input type="password" name="pwd2"
/>
</form>
<script type="text/javascript">
function
chkpwd(obj){
var t=obj.value;
var id=getresult(t);
//定义对应的消息提示
var msg=new array(4);
msg[0]="密码过短。";
msg[1]="密码强度差。";
msg[2]="密码强度良好。";
msg[3]="密码强度高。";
var
sty=new array(4);
sty[0]=-45;
sty[1]=-30;
sty[2]=-15;
sty[3]=0;
var col=new array(4);
col[0]="gray";
col[1]="red";
col[2]="#ff6600";
col[3]="green";
//设置显示效果
var
bimg="http://bbs.blueidea.com/attachments/2006/12/7/pwdlen_dsipeegqwxfo.gif";//一张显示用的图片
var swidth=300;
var sheight=15;
var
bobj=document.getelementbyid("chkresult");
bobj.style.fontsize="12px";
bobj.style.color=col[id];
bobj.style.width=swidth + "px";
bobj.style.height=sheight + "px";
bobj.style.lineheight=sheight + "px";
bobj.style.background="url(" + bimg +
") no-repeat left " + sty[id] + "px";
bobj.style.textindent="20px";
bobj.innerhtml="检测提示:" +
msg[id];
}
//定义检测函数,返回0/1/2/3分别代表无效/差/一般/强
function
getresult(s){
if(s.length < 4){
return 0;
}
var ls =
0;
if (s.match(/[a-z]/ig)){
ls++;
}
if
(s.match(/[0-9]/ig)){
ls++;
}
if
(s.match(/(.[^a-z0-9])/ig)){
ls++;
}
if (s.length < 6
&& ls > 0){
ls--;
}
return
ls
}
</script>
</body>
</html>
制作:罗可龙 电邮:luokelong(at)it168.com