需求:当用户点击了校验按钮,要和获取输入框中的内容然后验证其是否合法;验证规则是:必须由字母,数字,下划线组成,并且长度是5到12

需求:

当用户点击了校验按钮,要和获取输入框中的内容然后验证其是否合法;验证规则是:必须由字母,数字,下划线组成,并且长度是5到12

写法一(较繁琐):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        /*
        思路:点击验证按钮,向input返回flag,开始遍历校验,出错就alert()
        问题:怎么向input返回值
             怎么获取input输入
        isNaN(x) 函数用于检查其参数是否是非数字值。
        如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
        */
        function btFun() {
    
    
            return true;
        }
        function inFun(flag) {
    
    
            var sum=0;
            if (flag){
    
    
                var arr =[];
                //将输入框的值存储在数组arr中
                arr =document.getElementById("01").value;

                //判断长度是否合法
                if((arr.length<5)||arr.length>12){
    
    
                    alert("长度必须在5到12之间");
                }
                //用字母,数字,下划线其中一个即可
                for (var i = 0; i < arr.length; i++) {
    
    
                    if((!isNaN(arr[i]))||(arr[i]=='_')||('A'<=arr[i]&&arr[i]<='Z')||('a'<=arr[i]&&arr[i]<='z')){
    
    
                    }else{
    
    
                        alert("校验失败!用户名必须由字母,数字,下划线组成!");
                        sum++;
                        break;
                    }
                }
                //若sum为0说明每个字符都满足规则,即校验成功
                if(sum==0){
    
    
                    alert("校验成功!"+"您输入的用户名是:"+document.getElementById("01").value);
                }

            }
        }
    </script>
</head>
<body>
    用户名:<input type="text" id="01"/>
    <button id="02" onclick="inFun(btFun())">校验</button>
</body>
</html>

运行结果截图:
在这里插入图片描述在这里插入图片描述

写法二:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onclickFun() {
    
    
            //获取dom对象
            var usernameobj = document.getElementById("username");
            //获取输入框的值
            var usernameText = usernameobj.value
            //使用正则表达式制定规则
            var patt = /^\w{5,12}$/;
            //判断输入框的值是否与规则相符
            if(patt.test(usernameText)){
    
    
                alert("合法");
            }else{
    
    
                alert("不合法");
            }
        }
    </script>
</head>
<body>
    用户名:<input type="text" id="username"/>
    <button onclick="onclickFun();">
        校验
    </button>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45778181/article/details/105900720
今日推荐