关于密码强度的正则

今天在写一个项目的时候用到正则表达式去区分密码的强度,实在是不想写,就去网上找了找,看到他们写的要不就是太简单,就是判断数字和字母,要不然就是太复杂,让人看都看不懂,感觉好方。

所以自己花了半下午的时间,写了一个,自己感觉应付一般的密码完全可以应付。


uPwd.addEventListener("blur", function () {

//var timer = null;

clearInterval(timer);

tips[1].style.display = "block";

var pwdVal = uPwd.value;

if (pwdVal.length < 6) {

tips[1].innerHTML = "密码长度必须是6-20,由字母、数字、下划线、特殊字符组成";

tips[1].style.color = "red";

timer = setTimeout(function () {

tips[1].style.display = "none";

},3000)

}

//密码验证规则,很实用

if (/^[a-zA-Z0-9_-]{6,20}$/.test(pwdVal)) {

//show.className = "success";

tips[1].innerHTML = "密码强度:弱";

tips[1].style.color = "gray";

timer = setTimeout(function () {

tips[1].style.display = "none"

}, 3000);

if (/^([a-z].*[A-Z])|([A-Z].*[a-z])$/.test(pwdVal)) {

tips[1].innerHTML = "密码强度:中等";

tips[1].style.color = "orange";

timer = setTimeout(function () {

tips[1].style.display = "none"

}, 3000)

}

if (/^([a-z].*[0-9])|([A-Z].*[0-9])|[0-9].*[a-zA-Z]$/.test(pwdVal)) {

tips[1].innerHTML = "密码强度:高";

tips[1].style.color = "hotpink";

timer = setTimeout(function () {

tip[1].style.display = "none"

}, 3000)

}

if (/^[A-Za-z0-9]+[_][A-Za-z0-9]*$/.test(pwdVal)) {

tips[1].innerHTML = "密码强度:非常高";

tips[1].style.color = "green";

timer = setTimeout(function () {

tips[1].style.display = "none"

}, 3000)

}

repwd = this.value;

} else {

tips[1].innerHTML = "密码不可用,必须是6-20位数字、字母、下划线、特殊字符";

tips[1].style.color = "red";

repwd = null;

timer = setTimeout(function () {

tips[1].style.display = "none"

}, 3000)

}

})


这个文本模式太烦人,下次用markdown写

欢迎交流意见

你可能感兴趣的:(关于密码强度的正则)