87,910
社区成员
发帖
与我相关
我的任务
分享
<script language=javascript>
//CharMode函数
//测试某个字符是属于哪一类
function CharMode(iN) {
if (iN>=48 && iN <=57) //数字
return 1;
if (iN>=65 && iN <=90) //大写字母
return 2;
if (iN>=97 && iN <=122) //小写
return 4;
else
return 8; //特殊字符
}
//bitTotal函数
//计算出当前密码当中一共有多少种模式
function bitTotal(num) {
modes=0;
for (i=0;i<4;i++) {
if (num & 1) modes++;
num>>>=1;
}
return modes;
}
//checkStrong函数
//返回密码的强度级别
function checkStrong(sPW) {
if (sPW.length<=4)
return 0; //密码太短
Modes=0;
for (i=0;i<sPW.length;i++) {
//测试每一个字符的类别并统计一共有多少种模式
Modes|=CharMode(sPW.charCodeAt(i));
}
return bitTotal(Modes);
}
//pwStrength函数
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
function pwStrength(pwd) {
O_color="#eeeeee";
L_color="#FF0000";
M_color="#FF9900";
H_color="#33CC00";
if (pwd==null||pwd==''){
Lcolor=Mcolor=Hcolor=O_color;
}
else {
S_level=checkStrong(pwd);
switch(S_level) {
case 0:
Lcolor=Mcolor=Hcolor=O_color;
case 1:
Lcolor=L_color;
Mcolor=Hcolor=O_color;
break;
case 2:
Lcolor=Mcolor=M_color;
Hcolor=O_color;
break;
default:
Lcolor=Mcolor=Hcolor=H_color;
}
}
document.getElementById("strength_L").style.background=Lcolor;
document.getElementById("strength_M").style.background=Mcolor;
document.getElementById("strength_H").style.background=Hcolor;
return;
}
</script>
<form name="form1" action="">
输入密码:<input type="password" size="20" onKeyUp="pwStrength(this.value)" onBlur="pwStrength(this.value)" />
<br>密码强度:
<table width="200px" height="25" border="0" cellspacing="0" cellpadding="1" bordercolor="#cccccc" style='font-size:12px'>
<tr align="center" bgcolor="#eeeeee">
<td width="33%" id="strength_L">弱</td>
<td width="33%" id="strength_M">中</td>
<td width="33%" id="strength_H">强</td>
</tr>
</table>
</form>
<html>
<head>
<script type="text/javascript">
function checkstr(str)
{
if(str>=48&&str<=57)//数字
{
return 1;
}
else if(str>=65&&str<=90)//大写字母
{
return 2;
}
else if(str>=97&&str<=122)//小写字母
{
return 3;
}
else//特殊字符
{
return 4;
}
}
function checkl(string)
{
n=false;
s=false;
t=false;
l_num=0;
if(string.length<6)
{
l_num=1;
}
else
{
for(i=0;i<string.length;i++)
{
asc=checkstr(string.charCodeAt(i));
if(asc==1&&n==false){l_num+=1;n=true;}
if((asc==2||asc==3)&&s==false){l_num+=1;s=true;}
if(asc==4&&t==false){l_num+=1;t=true;}
}
}
return l_num;
}
function checklevel(psw)
{
if(psw!=""){
document.getElementById("pwdisok").style.display="block";
}else{
document.getElementById("pwdisok").style.display="none";
}
color="#ededed";
color_l="#ff0000";
color_m="#ff9900";
color_h="#33cc00";
if(psw==null||psw=='')
{
lcor=color;
mcor=color;
hcor=color;
}
else
{
thelev=checkl(psw)
switch(thelev)
{
case 1:
lcor=color_l;
hcor=mcor=color;
break;
case 2:
mcor=lcor=color_m;
hcor=color;
break;
case 3:
hcor=mcor=lcor=color_h;
break;
default:
lcor=mcor=hcor=color;
}
}
document.getElementById("pwd_small").style.background=lcor;
document.getElementById("pwd_center").style.background=mcor;
document.getElementById("pwd_ok").style.background=hcor;
}
function checksubmit(){
if(document.getElementById("pwd_small").style.background=="#ff0000"){
alert("你的密码强度太弱,建议你用字母、数字、下划线、特殊字符组合密码!");
}
}
</script>
</head>
<body>
<div id="qqpwd">
设置密码 :
<input type="password"
onKeyUp="checklevel(this.value)" onBlur="checklevel(this.value)">
</div>
<div id="pwdisok" style="display: none;width:330px;">
<!-- 密码强弱判断 -->
<span id="pwd_small" style="width:100px;text-align:center;">弱</span>
<span id="pwd_center" style="width:100px;text-align:center;">中</span>
<span id="pwd_ok" style="width:100px;text-align:center;">强</span>
</div>
<br>
<input type="button" value="提交" onclick="checksubmit()" />
</body>
ls的思路都不错,可以利用正则判断密码强度
css+js控制显示强度系数即可