JavaScript表单验证

<head>
    <meta charset="UTF-8">
    <title>js表单验证</title>
</head>
<body background="img/2.jpg">
    <form name="frm" onsubmit="return yanzheng()"> 
            <!-- 注意:验证函数要在表单里,用onsubmit属性调用,并加上 return -->
            
            邮箱:<input type="text" name="email" id="email"><br>
            用户名:<input type="text" name="name" id="name"><br>
            密码:<input type="password" name="p1" id="p1"><br>
            确认密码:<input type="password" name="p2" id="p2"><br>
            手机号码:<input type="text" id="phone" name="phone"><br>
            <input type="submit" value="提交">

            <!-- 如果验证函数用在 提交按钮里,比如
             <input type="submit" value="提交" οnclick="yanzheng()">
             这样不管验证是否成功,都会把表单提交
            -->
    </form>
</body>
<script>
   function yanzheng(){
    var regNameStr = /^\s*\w{6,10}\s*$/;
    // ^  匹配输入字符串的开始位置
    // \s 匹配空白字符任何空白字符,包括空格、制表符、换页符等等
    // \w 匹配字母、数字、下划线 
    // $  匹配输入字符串的结束位置
    // 上面的正则表达式匹配 长度在6-10之间的字符串,字符串两边可以加入任意空格
    // 即 名字的长度要在6-10之间(中文3到5个字)
    var regEmailStr = /^\s*\w+@\w+\s*$/;
    // 匹配  xxxx@XXX 格式的邮箱输入
    var regPhoneStr =/^1[0-9]{10}$/
    //匹配1开头的11位手机号码
    var email = document.getElementById("email").value; //获取html中 对应的属性名 的值
    var name = document.getElementById("name").value;
    var p1 = document.getElementById("p1").value;
    var p2 = document.getElementById("p2").value;
    var phone = document.getElementById("phone").value;
    if (frm.email.value.trim() =="") { // 也可以通过 表单名.属性名.value 获取对应的值 
        alert("邮箱不能为空!");
        document.getElementById("email").focus();//聚焦函数
        return false;
    }
    else if (!regEmailStr.test(email)) { //验证是否符合正则表达式的要求
        alert("邮箱格式错误");
        document.getElementById("email").focus();
        return false;
    }
    else if (name.trim() == "") { // trim()函数 可以去除空格
        alert("名称不能为空!");
        document.getElementById("name").focus();
        return false;
    }
    else if (!regNameStr.test(name)) {
        alert("名称格式错误,长度6到10位");
        document.getElementById("name").focus();
        return false;
    }
    else if (p1.trim() == "") {
        alert("请输入密码");
        document.getElementById("p1").focus();
        return false;
    }
    else if (p2.trim() == "") {
        alert("请输入确认密码");
        document.getElementById("p2").focus();
        return false;
    }
    else if (p1 != p2) {
        alert("密码和确认密码不一样!");
        document.getElementById("p2").focus();
        return false;
    }
    else if(phone.trim()==""){
        alert("请输入1开头的11位手机号码");
        document.getElementById("phone").focus();
        return false;
    }
    else return true; 

}
   
</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值