正则表达式验证密码强度

103 篇文章 0 订阅
97 篇文章 0 订阅
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<style type="text/css">
  #dv{
    width: 300px;
    height:200px;
    position: absolute;
    left:300px;
    top:100px;
  }
  .strengthLv0 {
    height: 6px;
    width: 120px;
    border: 1px solid #ccc;
    padding: 2px;
  }

  .strengthLv1 {
    background: red;
    height: 6px;
    width: 40px;
    border: 1px solid #ccc;
    padding: 2px;
  }

  .strengthLv2 {
    background: orange;
    height: 6px;
    width: 80px;
    border: 1px solid #ccc;
    padding: 2px;
  }

  .strengthLv3 {
    background: green;
    height: 6px;
    width: 120px;
    border: 1px solid #ccc;
    padding: 2px;
  }
</style>
<body>
<div id="dv">
  <label for="pwd">密码</label>
  <input type="text" id="pwd" maxlength="16"><!--课外话题-->
  <div>
    <em>密码强度:</em>
    <em id="strength"></em>
    <div id="strengthLevel" class="strengthLv0"></div>
  </div>
</div>
<script>
  // 获取密码ID
  var pwd = document.getElementById("pwd");
  // 获取强度id
  var ss = document.getElementById("strengthLevel");

  // 注册键盘抬起事件
  pwd.onkeyup = function(){
            // 方法1
    //密码长度大于6开始判断密码强度
    // if(this.value.length >= 6){
    //   // 把输入框内的value赋值给lvl
    //   var lvl = getpassword(this.value);
    //   //判断lvl的等级
    //   if(lvl == 1){
    //     ss.className = "strengthLv1";
    //   }else if(lvl == 2){
    //     ss.className = "strengthLv2";
    //   }else if(lvl == 3){
    //     ss.className = "strengthLv3";
    //     }
    //   }else{
    //     //密码强度低于6取消判断密码强度
    //     ss.className = "strengthLv0";
    // } 

               // 方法2
      // if(this.value.length >= 6){
      //   var lvl = getpassword(this.value);
      //   ss.className = "strengthLv"+lvl;
      // }else{
      //   ss.className = "strengthLv0";
      // }     

              // 方法3
      ss.className = "strengthLv"+(this.value.length >= 6?getpassword(this.value):0)
  };

  //判断获取密码级别
  function getpassword(pwd){
    var lvl = 0;//默认等级是0
    //判断密码中是否有数字、字母、特殊符号

    // 判断数字
    if(/[0-9]/.test(pwd)){
        lvl++;
    }
    // 判断有没有字母
    if(/[a-zA-Z]/.test(pwd)){
        lvl++;
    }
    // 判断有没有特殊符号
    if(/[^0-9a-zA-A_]/.test(pwd)){
        lvl++;
    }
    return lvl; //默认传出是1
  }
</script>
</body>
</html>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值