js登陆表单正则表达式

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
</head>

<body>
<table border="1" cellspacing="0" cellpadding="0" align="center">
    <tr>
        <td>用户名:</td>
        <td><input type="text" id="username" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td>密码:</td>
        <td><input type="password" id="pwd" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td>确认密码:</td>
        <td><input type="password" id="pwds" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td>邮箱:</td>
        <td><input type="text" id="mailbox" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td>手机号:</td>
        <td><input type="text" id="cpn" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td>身份证号:</td>
        <td><input type="text" id="IDnumber" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td>地址:</td>
        <td><input type="text" id="site" onblur="fun(this.id)"><span></span></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="button" value="登录" id="btn"></td>
    </tr>
</table>
<script>
    // 获取 span 元素
    var s = document.getElementsByTagName("span");

    // 定义正则表达式
    var rs0 = /^[A-Z][A-z]{5,19}$/;					// 大写字母开头不能有数字,符号只能出现下划线最少6位最多20位
    var rs1 = /^[A-Z][A-z0-9\.]{7,14}$/;			// 大写字母开头最少8位做多15位
    var rs2 = /^[A-Z][A-z0-9\.]{7,14}$/;			// 大写字母开头最少8位做多15位	并且要与上面的密码一致
    var rs3 = /^[A-z0-9]+@[A-z0-9]+\.[a-z]{1,3}$/;	// 邮箱格式 2027206634@qq.com   wang13754545.@163.cn
    var rs4 = /^1[345678]{2}[0-9]{8}$/;				// 第一位只能是1后两位只能是345678剩下的是数字	共可输入11位数字
    var rs5 = /^[1-9][0-9]{16}[A-Z0-9]$/;			// 第一位不能为0最后一位只能是数字和大写字母  共可输入 18位
    var rs6 = /^[\u4e00-\u9fa5]+$/;					// 只能是中文

    // 当输入框失去焦点时调用该方法验证用户输入格式是否正确
    function fun(name) {
        switch (name){
            case "username":
                // 1.用户名
                span(name,rs0,s[0]);
                break;
            case "pwd":
                // 2.密码
                span(name,rs1,s[1]);
                break;
            case "pwds":
                // 3.确认密码
                // 先判断格式是否正确   在判断是否与密码相同
                span(name,rs2,s[2]);
                if (document.getElementById("pwd").value == document.getElementById("pwds").value && document.getElementById("pwds").value != "") {
                    s[2].style.color = "green";
                    s[2].innerHTML = " ✔";
                } else {
                    s[2].style.color = "red";
                    s[2].innerHTML = " ✘";
                }
                break;
            case "mailbox":
                // 4.邮箱
                // 2027206634@qq.com   wang13754545.@163.cn
                span(name,rs3,s[3]);
                break;
            case "cpn":
                // 5.手机号
                span(name,rs4,s[4]);
                break;
            case "IDnumber":
                // 6.身份证号
                span(name,rs5,s[5]);
                break;
            case "site":
                // 7.地址
                span(name,rs6,s[6]);
                break;
        }

        /**
         * 判断提交
         * 当所有输入框符合格式后才能提交
         * @param {Object} name
         * @param {Object} rs
         * @param {Object} span
         */
        var oBtn = document.getElementById("btn");
        oBtn.onclick = function(){
            if(s[0].innerHTML == " ✔" && s[1].innerHTML == " ✔" && s[2].innerHTML == " ✔" &&
                s[3].innerHTML == " ✔" && s[4].innerHTML == " ✔" && s[5].innerHTML == " ✔" && s[6].innerHTML == " ✔"){
                var name = document.getElementById("username").value;
                document.write(name + "欢迎您!");
            }else{
                alert("格式输入有误或未输入,请再次确认!");
            }
        }

        /**
         * 定义一个方法 通过传入每个输入框对应的id名 和对应的正则表达式 来设置span加内容
         * @param obj
         */
        function span(name,rs,span) {
            var id = document.getElementById(name).value;
            if (rs.test(id)) {
                span.style.color = "green";
                span.innerHTML = " ✔";
            } else {
                span.style.color = "red";
                span.innerHTML = " ✘";
            }
        }
    }
</script>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值