输入两种和三种类型混合不会了,接下里的怎么写?能帮忙写下在给个注释?

来源:2-25 项目作业

wt涛

2021-02-05 20:56:53

 <style>

       

        #tishi01{

            displaynone;

            colorred;

        }

        #jdt01,#jdt02,#jdt03{

           

            width40px;

            height10px;

            background-colorrgb(211210210);displayinline-block;

        }

        div{

            colorred;

            displaynone;

        }

    </style>

</head>

<body>

    用户名:<input type="text" id="name01">

            <span id="tishi01">6-30位字母、数字或’_’,字母开头</span>

            <br><br>

            登录密码:<input type="password" id="pwd" placeholder="请输入:6-20位字母或数字">

            <span id="jdt01"></span>

            <span id="jdt02"></span>

            <span id="jdt03"></span>

            <div id="psdts">6-20位字母或数字</div>


            <script>

                var name01=document.getElementById('name01');

                var tishi01=document.getElementById('tishi01');


                var pwd=document.getElementById('pwd');

                var jdt01=document.getElementById('jdt01');

                var jdt02=document.getElementById('jdt02');

                var jdt03=document.getElementById('jdt03');

                var psdts=document.getElementById('psdts');


                name01.onblur=function(){

                    var tishi=name01.value;

                    if(/^[a-zA-Z]\w{5,29}$/.test(tishi)){

                        tishi01.innerText="用户名输入正确";

                        tishi01.style.display="inline";

                        tishi01.style.color="green";

                    } else {

                        tishi01.style.display="inline";

                    }

                }


                pwd.onblur=function(){

                    var jdt=pwd.value;

                    if(/^[0-9]{6,20}$/||/^[a-z]{6,20}$/||/^[A-Z]{6,20}$/){

                        jdt01.style.backgroundColor="red";

                        //两种混合

                    }else if( ){


                    }


                }

            </script>


写回答

1回答

樱桃小胖子

2021-02-06

同学你好,可参考如下:

        <script>
        var name01 = document.getElementById('name01');
        var tishi01 = document.getElementById('tishi01');
        var pwd = document.getElementById('pwd');
        var jdt01 = document.getElementById('jdt01');
        var jdt02 = document.getElementById('jdt02');
        var jdt03 = document.getElementById('jdt03');
        var psdts = document.getElementById('psdts');
        name01.onblur = function() {
            var tishi = name01.value;
            if (/^[a-zA-Z]\w{5,29}$/.test(tishi)) {
                tishi01.innerText = "用户名输入正确";
                tishi01.style.display = "inline";
                tishi01.style.color = "green";
            } else {
                tishi01.style.display = "inline";
            }
        }
        // pwd.onblur = function() {
        //     var jdt = pwd.value;
        //     if (/^[0-9]{6,20}$/ || /^[a-z]{6,20}$/ || /^[A-Z]{6,20}$/) {
        //         jdt01.style.backgroundColor = "red";
        //     }else if(){
        //     }
        // }
        /*
            \d表示匹配一个数字字符,等价于[0-9]
            \W表示匹配任何非单词字符,等价于[^A-Za-z0-9_]
            test()方法是正则表达式的一个方法,用于检测一个字符串是否匹配某个模式
        */ 
        pwd.onblur = function() {
            var jdt = pwd.value;
            // 定义匹配任何可见字符的正则表达式,判断是否输入了内容,若未输入内容,则提示"请输入6-20位字母、数字或符号"
            if (!/^\S{6,20}$/.test(jdt)) {
                psdts.className += " block";
                psdts.innerHTML = "请输入6-20位字母、数字或符号";
            }
            // 验证密码
            else {
                // 当输入密码时,先清空提示文字,便于后面让密码强度快显示
                psdts.className = "";
                psdts.innerHTML = "";
                // 验证纯数字、纯字母、纯字符(即密码中包含一种字符)
                if (/^\d{6,20}$|^[a-zA-Z]{6,20}$|^(\W|_){6,20}$/.test(jdt)) {
                    jdt01.style.backgroundColor = "red";
                // 验证数字+字母(大写或小写)、字母+特殊字符、数字+特殊字符
                } else if (/^[\d|a-zA-Z]{6,20}$|^[(\W|_)|a-zA-Z]{6,20}$|^[(\W|_)\d]{6,20}$/.test(jdt)) {
                    jdt01.style.backgroundColor = "red";
                    jdt02.style.backgroundColor = "red";
                // 验证特殊字符+数字+字母
                } else if (/^[(\W|_)\d a-zA-Z]{6,20}$/.test(jdt)) {
                    jdt01.style.backgroundColor = "red";
                    jdt02.style.backgroundColor = "red";
                    jdt03.style.backgroundColor = "red";
                }
            }
        }
        </script>

另外,本题属于开放式题目,可以在https://class.imooc.com/lesson/jobdetail?mid=44249#中参考或者与其他同学进行交流、探讨。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程