密码强弱监测

#Register .Pstyle6 .textstyle1 {
padding:8px 22px;
margin:0 1px;
border-top:5px solid #CCCCCC;
}
#Register .Pstyle6 .textstyle2 {
padding:8px 22px;
margin:0 1px;
border-top:5px solid #009900;
}


        <p class="Pstyle3">登录密码 <span class="red">*</span>
<input class="inputstyle3" type="password" name="pwd" id="pwd" onkeyup="javascript:checkpwd(this)"/>
<%--<input class="inputstyle3" type="password" name="pwd" id="pwd"/>--%>
</p>
<p class="Pstyle6" id="pwd_label">
<span id="p1" class="textstyle1">弱</span>
<span id="p2" class="textstyle1">中</span>
<span id="p3" class="textstyle1">强</span>
</p>


<script>
function testpwd(pwd, userName) {
var score = 0;
if (pwd.length < 4) {
return -4;
}
if (typeof(userName) != 'undefined' && pwd.toLowerCase() == userName.toLowerCase()) {
return -2
}
score += pwd.length * 4;
score += ( repeat(1, pwd).length - pwd.length ) * 1;
score += ( repeat(2, pwd).length - pwd.length ) * 1;
score += ( repeat(3, pwd).length - pwd.length ) * 1;
score += ( repeat(4, pwd).length - pwd.length ) * 1;
if (pwd.match(/(.*[0-9].*[0-9].*[0-9])/)) {
score += 5;
}
if (pwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) {
score += 5;
}
if (pwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {
score += 10;
}
if (pwd.match(/([a-zA-Z])/) && pwd.match(/([0-9])/)) {
score += 15;
}
if (pwd.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && pwd.match(/([0-9])/)) {
score += 15;
}
if (pwd.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && pwd.match(/([a-zA-Z])/)) {
score += 15;
}
if (pwd.match(/^\w+$/) || pwd.match(/^\d+$/)) {
score -= 10;
}
if (score < 0) {
score = 0;
}
if (score > 100) {
score = 100;
}
return score;

function repeat(len, str) {
var res = "";
for (var i = 0; i < str.length; i++) {
var repeated = true;
for (var j = 0, max = str.length - i - len; j < len && j < max; j++) {
repeated = repeated && (str.charAt(j + i) == str.charAt(j + i + len));
}
if (j < len) repeated = false;
if (repeated) {
i += len - 1;
repeated = false;
} else {
res += str.charAt(i);
}
}
return res;
}
}
function checkpwd(pwd) {
var userName = document.getElementById('userName').value;
var score = testpwd(pwd.value, userName);
var pwd_label = document.getElementById('pwd_label');
if(score<34){
$("#p1").addClass("textstyle2");
$("#p2").removeClass("textstyle2");
$("#p3").removeClass("textstyle2");
}else if(score<68){
$("#p1").addClass("textstyle2");
$("#p2").addClass("textstyle2");
$("#p3").removeClass("textstyle2");
}else{
$("#p1").addClass("textstyle2");
$("#p2").addClass("textstyle2");
$("#p3").addClass("textstyle2");
}

}
</script>


效果:
[img]http://dl2.iteye.com/upload/attachment/0092/9473/1946da3e-5ec2-30ef-b2c7-f457041b056d.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值