Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Reg exp功能破解密码强度功能_Javascript_Jquery - Fatal编程技术网

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