老师在问答里给的验证密码的正则

来源:3-10 作业题

weixin_慕雪558436

2019-10-09 20:54:55

<script>
    var str1="312345";
    var str2="aabbcc";
    var str3="###$$%%";
    var str4="1a23##$%%";

    var reg1=/^[0-9|a-z]{6,20}$/i;
    var reg2=/^[\W|a-z]{6,20}$/i;
    var reg3=/^[\W|0-9]{6,20}$/i;
    var reg_all=/^\W[a-zA-Z0-9]*$/;
    console.log(reg1.test(str1));
    console.log(reg2.test(str2));
    console.log(reg3.test(str3));
    console.log(reg_all.test(str4));
    console.log(reg_all.test(str3));
    console.log(reg_all.test(str2));
    console.log(reg_all.test(str1));

</script>

https://class.imooc.com/course/qadetail/139746
老师在问答里给的验证密码的正则我测试了一下怎么不行呢。我看了很多其他的问答下面老师也都是用的这个正则。是我哪里打错了么?

reg1,2,3是两种结合的正则,但是单一组合也都通过了。

reg4是三种结合的正则,但是str4却通不过。

写回答

2回答

好帮手慕星星

2019-10-10

因为正则中用的是|,匹配一种或者两种都是可以的。

这样写是因为前面已经经过筛选了,给你举个例子:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <input type="text" id="pass">
    <span id="tip"></span>
    <script>
    var pass = document.getElementById('pass');
    var tip = document.getElementById('tip');
    pass.onblur = function() {
        var value = this.value;
        var reg = /\S{6,20}/;
        if (!reg.test(value)) {
            tip.innerHTML = '6-20个字符';
        } else {
            if (/^[1-9]{6,20}$/.test(value) || /^[a-zA-Z]{6,20}$/.test(value) || /^\W{6,20}$/.test(value)) {
                tip.innerHTML = '密码强度弱';

            } else if (/^[1-9|a-z]{6,20}$/.test(value) || /^[\W|a-z]{6,20}$/.test(value) || /^[\W|1-9]{6,20}$/.test(value)) {
                tip.innerHTML = '密码强度一般';

            } else if (/\W[0-9a-zA-Z]*/.test(value)) {
                tip.innerHTML = '密码强度强';

            }
        }
    }
    </script>
</body>

</html>

要结合整体代码去看,不要只测试一个正则哦。

自己再测试下。

0

好帮手慕星星

2019-10-10

同学你好,

第四个正则中不需要加^和$,如果加上了就必须按照正则的顺序来,所以不需要添加:

http://img.mukewang.com/climg/5d9e955b09cba91c03380027.jpg

可以重新测试下,祝学习愉快!

0
heixin_慕雪558436
h 前三个正则老师说是验证2个组合的,但是单一数字、字符或者字母也都能通过验证是为什么呢。 另,第四个正则不需要判断字符长度么
h019-10-10
共1条回复

0 学习 · 14456 问题

查看课程