检验密码
要求:密码不能少于6位,且不能是连续的数字,中间不能有连续3个以上的重复数字。
之前的进度:
完整代码:
运行效果:
还是有一点是错的,
弹框显示有问题,有待修改
修改后:
去掉标记处的/g即可
/g:test一次后,下次test就会从上次结束位置继续开始,而不会从头检测。从上次结束位置开始第二次检测显然不够6位。
效果如下:
完整代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
function checkPassword(pwd){
var password=document.getElementById("pwd_id").value;//获取输入的密码
var reg1 =/^[0-9A-Za-z]{6,}/ ;//正则表达式:检测密码是否六位以上
reg2 = /(\d)\1{3}/g;//检测是否三位以上重复数字
if (reg1.test(password) && !reg2.test(password)) {//密码六位以上且无三位以上重复数字
if(password[0]>='0'&&password[0]<='9'){//进行密码是否连续的检测
var i=1;
for(i=1;i<password.length;i++){
if(!(password[i]>='0'&&password[i]<='9')||!(Number(password[i-1])+Number(1)==password[i])){//密码全是数字且后一位不总比前一位大1
alert("密码符合规则");
break;
}else{//不符合密码全是数字且后一位不总比前一位大1
alert("密码不可连续");
break;
}
}
}
}else{
if(!reg1.test(password)){//不满足正则表达式reg1,即不满足密码长度大于6位
alert("密码长度需大于6位!");
} else{
alert("密码不可有连续三位以上的重复数字!");
}
}
}
</script>
<title>密码验证</title>
</head>
<body>
<form action="">
密码不能少于6位,且不能是连续的数字,中间不能有连续3个以上的重复数字。
<br><input type="text" name="pwd" id="pwd_id">
<input type="button" value="验证密码" onclick="checkPassword(this.form.pwd)"><br>
</form>
</body>
</html>