【JS】正则验证用户名,密码,重复密码,密码强度

要求:
1.用户名 用户名仅支持中文、字母、数字、“-”“_”的组合,4-20个字符
2.密码的规则 数字字母特殊字符,一种类型,弱。两种类型为中,三种类型为强,6-20个字符
3.重复密码 跟第一次输入 密码一致
4.提交按钮的时候,判断所有输入数据是否符合。符合跳转,否,不跳

HTML

    用户名:<input type="text" name="" id="user" value="" /><span></span><br />
    密码:<input type="text" name="" id="pass" value="" /><span></span><br />
    重复密码:<input type="text" name="" id="pass2" value="" /><span></span
    ><br />
    <input type="button" name="btn" id="btn" value="提交" /><span></span>

JS

<script>
      //		1.用户名           用户名仅支持中文、字母、数字、“-”“_”的组合,4-20个字符
      //		3.重复密码            跟第一次输入 密码一致
      //		6.提交按钮的时候,判断所有输入数据是否符合。符合跳转,否,不跳

      var userObj = document.getElementById("user"); //用户
      var pwdObj = document.getElementById("pass"); //密码
      var rePwdObj = document.getElementById("pass2"); //重复密码
      var input = document.querySelector("#btn"); //提交按钮
      //用户正则
      var userReg = /^[\u4e00-\u9fa5\w-]{4,20}$/;

      var flag = 1;

      //验证用户名
      userObj.onblur = function () {
        var state = userReg.test(this.value);
        if (state) {
          flag = 1;
          userObj.nextElementSibling.innerHTML = "输入正确";
          userObj.nextElementSibling.style.color = "green";
        } else {
          flag = 0;
          userObj.nextElementSibling.innerHTML = "输入错误";
          userObj.nextElementSibling.style.color = "red";
        }
      };
      //2.密码的规则  数字字母特殊字符,一种类型,弱。两种类型为中,三种类型为强,6-20个字符
      pwdObj.onblur = function () {
        if (this.value.length >= 6 && this.value.length <= 20) {
          var a = 0;
          var b = 0;
          var c = 0;
          var pwdReg1 = /\d+/;//密码正则1
          var pwdReg2 = /[a-z]+/i;//密码正则2
          var pwdReg3 = /\W+/;//密码正则3
          if (pwdReg1.test(this.value)) {
            a = 1;
          }
          if (pwdReg2.test(this.value)) {
            b = 1;
          }
          if (pwdReg3.test(this.value)) {
            c = 1;
          }
          switch (a + b + c) {
            case 0:
              flag = 0;
              pwdObj.nextElementSibling.innerHTML = "输入格式错误";
              pwdObj.nextElementSibling.style.color = "red";
              break;
            case 1:
              flag = 1;
              pwdObj.nextElementSibling.innerHTML = "密码强度:弱";
              pwdObj.nextElementSibling.style.color = "green";
              break;
            case 2:
              flag = 1;
              pwdObj.nextElementSibling.innerHTML = "密码强度:中";
              pwdObj.nextElementSibling.style.color = "green";
              break;
            case 3:
              flag = 1;
              pwdObj.nextElementSibling.innerHTML = "密码强度:强";
              pwdObj.nextElementSibling.style.color = "green";
          }
        } else {
          flag = 0;
          pwdObj.nextElementSibling.innerHTML = "长度错误";
          pwdObj.nextElementSibling.style.color = "red";
        }
      };

      rePwdObj.onblur = function () {
        var pwdValue = pwdObj.value;
        if (rePwdObj.value != pwdObj.value) {
          flag = 0;
          rePwdObj.nextElementSibling.innerHTML = "与输入密码不同";
          rePwdObj.nextElementSibling.style.color = "red";
        } else {
          flag = 1;
          rePwdObj.nextElementSibling.innerHTML = "输入无误";
          rePwdObj.nextElementSibling.style.color = "green";
        }
      };

      // console.log(Boolean(1));
      input.onclick = function () {
        if (!flag) {
          input.nextElementSibling.innerHTML = "输入内容有误,请重新填写后提交";
          input.nextElementSibling.style.color = "red";
          return false;
        } else {
          input.nextElementSibling.innerHTML = "输入正确,已进行提交";
          input.nextElementSibling.style.color = "green";
        }
      };
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值