zoukankan      html  css  js  c++  java
  • 正则实现简单的表单的验证及跳转

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>
    <!-- 在页面上写出5个输入框和一个提交按钮。 -->
    <h2>注册</h2>
    账号:<input type="text" id="txt1"><span></span><br><br>
    密码:<input type="password" id="pas1"><span></span><br><br>
    确认密码:<input type="password" id="pas2"><span></span><br><br>
    手机号:<input type="text" id="txt2"><span></span><br><br>
    邮箱:<input type="text" id="txt3"><span></span><br><br>
    <input type="submit" value="提交注册信息" id="sub">
    </body>
    <script>
    // 获取页面的输入框及按钮
    var oTxt1 = document.getElementById("txt1");
    var opas1 = document.getElementById("pas1");
    var opas2 = document.getElementById("pas2");
    var oTxt2 = document.getElementById("txt2");
    var oTxt3 = document.getElementById("txt3");
    var osub = document.getElementById("sub");
    // 提前定义每个输入框的成功状态:false为失败,true为成功
    var t1 = p1 = p2 = t2 = t3 = false;
    //给第一个输入框绑定一个失去焦点事件
    oTxt1.onblur = function () {
    //定义一个用户名的正则,这个规则可以自己确定,我的是支持中文、字母、数字、“-”“_”的组合,4-20个字符
      var reg = /^[u2E80-u9FFFw-]{4,20}$/gi
    //判断当前输入的内容是否符合
      if (reg.test(this.value)) {
    //如符合提示成功。
        this.nextElementSibling.innerHTML = "成功";
        t1 = true;
    } else {
    //否则提示用户名规则。
        this.nextElementSibling.innerHTML = "用户名仅支持中文、字母、数字、“-”“_”的组合,4-20个字符";
        t1 = false;
      }
    }
    //给第二个输入框绑定一个失去焦点事件,判断密码强度数字字母特殊字符,一种类型,弱。两种类型为中,三种类型为强
    opas1.onblur = function () {
    //提前定义每种类型的状态:0为没有,1为出现
        var a = b = c = 0;
    //判断为纯数字;
        var aReg = /d/
        if (aReg.test(this.value)) {
    //数值为1;
          a = 1;
        }
    //判断为字母
        var bReg = /[a-zA-Z]/
        if (bReg.test(this.value)) {
    //数值为1
          b = 1;
        }
    // 判断为特殊符号
        var cReg = /W/
        if (cReg.test(this.value)) {
    // 数值为1
          c = 1;
        }
    //状态累加之后,判断总和,判断难度类型;三个数值相加为1密码为简单为2为一般为3为困难
        switch (a + b + c) {
          case 1: this.nextElementSibling.innerHTML = "简单"; break;
          case 2: this.nextElementSibling.innerHTML = "一般"; break;
          case 3: this.nextElementSibling.innerHTML = "困难"; break;
    }
    //给第三个输入框绑定一个失去焦点事件判断密码是否一致。
    //在第一次输入密码时,只要再次输入的密码不为空,都做重复密码的验证
    p1 = true;
    if (opas2.value == "") return;
    if (this.value === opas2.value) {
        opas2.nextElementSibling.innerHTML = "一致";
        p2 = true;
     } else {
    opas2.nextElementSibling.innerHTML = "不一致";
    p2 = false;
    }
    }
    opas2.onblur = function () {
    if (this.value === opas1.value) {
        this.nextElementSibling.innerHTML = "一致";
        p2 = true;
    } else {
        this.nextElementSibling.innerHTML = "不一致";
        p2 = false;
    }
    }
    //给第四个输入框绑定一个失去焦点事件判断手机号。
    oTxt2.onblur = function () {
    //定义一个判断手机号的正则
    var reg = /^1[3-9][0-9]{9}$/
    //判断
    if (reg.test(this.value)) {
    //成功
        this.nextElementSibling.innerHTML = "正确";
        t2 = true;
    } else {
    //格式不正确
        this.nextElementSibling.innerHTML = "请输入符合格式的手机号";
        t2 = false;
    }
    }
    //给第五个输入框绑定一个失去焦点事件判断邮箱。
    oTxt3.onblur = function () {
    //定义一个判断邮箱的正则
    var reg = /^[a-z][a-z0-9]{0,5}@[a-z0-9]{2,9}.[a-z]{2,4}$/;
    //判断
    if (reg.test(this.value)) {
    //成功
        this.nextElementSibling.innerHTML = "正确";
        t3 = true;
    } else {
    //格式不正确
        this.nextElementSibling.innerHTML = "请输入符合格式的邮箱";
        t3 = false;
    }
    }
    //给第六个输入框绑定一个点击事件。
    osub.onclick = function () {
    // 提交时,判断所有输入框的状态必须全为true
    if (t1 && p1 && p2 && t2 && t3) {
    //如果成功点击跳转
      window.location.href = "https://www.cnblogs.com/zl-light/"
    } else {
    // 只要有一个不为true,都单独判断,找到真正的错误
          if (!t1) {
            alert("用户名错误");
          }
          if (!p1) {
            alert("密码不正确");
          }
          if (!p2) {
            alert("两次不一致");
          }
          if (!t2) {
            alert("手机号不符合");
          }
          if (!t3) {
            alert("邮箱不符合");
          }
      }
    
    }
    </script>
    
    </html>
  • 相关阅读:
    如何编写测试用例
    bug的合规描述
    Linux常用命令学习
    测试用列设计
    软件质量管理
    测试的分类
    软件工程模型
    软件测试核心概念
    Thinking in C++ 第十三章 动态对象创建
    python urllib
  • 原文地址:https://www.cnblogs.com/zl-light/p/11432199.html
Copyright © 2011-2022 走看看