今天在寫一個項目的時候用到正則表達式去區(qū)分密碼的強度,實在是不想寫,就去網(wǎng)上找了找,看到他們寫的要不就是太簡單,就是判斷數(shù)字和字母,要不然就是太復雜,讓人看都看不懂,感覺好方。
所以自己花了半下午的時間,寫了一個,自己感覺應付一般的密碼完全可以應付。
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,由字母、數(shù)字、下劃線、特殊字符組成";
tips[1].style.color = "red";
timer = setTimeout(function () {
tips[1].style.display = "none";
},3000)
}
//密碼驗證規(guī)則,很實用
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位數(shù)字、字母、下劃線、特殊字符";
tips[1].style.color = "red";
repwd = null;
timer = setTimeout(function () {
tips[1].style.display = "none"
}, 3000)
}
})
這個文本模式太煩人,下次用markdown寫
歡迎交流意見