Javascript Reg exp功能破解密码强度功能
接下来,我调整了脚本,这样就不用显示渐变进度条,而是使用Javascript Reg exp功能破解密码强度功能,javascript,jquery,Javascript,Jquery,接下来,我调整了脚本,这样就不用显示渐变进度条,而是使用li项显示块进度条,如下所示: <ul id="passwordStrength"> <li class="point-reg"></li> <li class="point-reg"></li> <li class="point-reg"></li> <li class="point-reg"></li&g
li
项显示块进度条,如下所示:
<ul id="passwordStrength">
<li class="point-reg"></li>
<li class="point-reg"></li>
<li class="point-reg"></li>
<li class="point-reg"></li>
</ul>
更新
解决了将颜色重置为灰色的问题。现在只需注册exp问题我想你需要数到5,而不是4,因为你有5个测试,包括长度。 此处的附加调试显示它工作正常:
$password="aA$"
var passed = 0;
for (var i = 0; i < regex.length; i++) {
if (new RegExp(regex[i]).test($password)) {
passed++;
console.log(regex[i]+" passed "+passed)
} else {
console.log(regex[i]+" failed")
}
}
console.log("Total "+passed);
问题是,当任何测试被验证时,您添加到
passed
,但您无法判断哪些测试真正通过了…好的。我可以问一下您的解决方案是什么吗?我要做的是将passed
转换成一个布尔数组,并将newregexp(regex[I]).test($(this.val())
的返回值添加到每个对应的数组元素'passed[I]=newregexp(regex[I]).test($(this.val())`和if(passed>2&$(this.val().length>8)
然后检查通过的[idx]
中的所有值是否为真,并更改$(密码\u li[idx])。css(…
根据需要情况0为空,对于4个li项,有4个标准。或者我遗漏了什么?您有4个正则表达式标准和一个长度标准,因此您有5个“级别”成功的可能性?如果你满足所有要求,那么最终总数将是5。你没有理由这样做,因此建议“完成”,只满足5个标准中的4个。只有当其他标准中的2个得到满足时,你的长度标准才会得到满足。因此,如果你满足所有4个正则表达式和长度,你将得到一个未处理的情况(5),如果你输入了足够多的字符,而没有遇到一个正则表达式,但长度达到了8,那么你只能得到4个字符。先生,你完全正确。现在感觉有点傻了。谢谢你的时间和解释
$password="aA$"
var passed = 0;
for (var i = 0; i < regex.length; i++) {
if (new RegExp(regex[i]).test($password)) {
passed++;
console.log(regex[i]+" passed "+passed)
} else {
console.log(regex[i]+" failed")
}
}
console.log("Total "+passed);
[A-Z] passed 1
[a-z] passed 2
[0-9] failed
[$@$!%*#?&] passed 3
Total 3