javascript实现前端input密码输入强度验证


Posted in Javascript onJune 24, 2020

本文实例为大家分享了js实现密码输入强度验证的具体代码,供大家参考,具体内容如下

javascript实现前端input密码输入强度验证

需求:

1.需要对用户输入的密码进行验证,验证的级别分为强中弱,如果输入的密码强度少于6时,则不会验证,只有密码强度在6-20时才会进行验证。

相关的正则

//密码为八位及以上并且字母数字特殊字符三项都包括
    var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
    //密码为七位及以上并且字母、数字、特殊字符三项中有两项,强度是中等
    var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
    var enoughRegex = new RegExp("(?=.{6,}).*", "g");

2.密码的显示与隐藏,点击小眼可以对密码进行显示或者隐藏。

具体代码

html部分:

<div class="wrapper">
  <div class="input_box">
  <input type="password" name="" placeholder="请输入密码" oninput="passValidate(this)" id="inputPwd" value="">
  <div class="eye_icon"></div>
  </div>
  <p>请至少使用字母、数字、符号两种类型组合的密码,长度为6~20位。</p>
  <ul class="pwdStrength">
   <li class="weak"></li>
   <li class="middle"></li>
   <li class="strong"></li>
   <li class="result"></li>
  </ul>
</div>

css部分:

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
  }

  .wrapper {
   width: 500px;
   height: 200px;
   border: 1px solid #eee;
   margin: 100px auto;
   display: flex;
   align-items: center;
   flex-direction: column;
  }
  .input_box{
   width: 80%;
   display: flex;
   align-items: center;
  }
  .input_box input {
   width: 82%;
   height: 30px;
   border: none;
   outline: none;
   border: 1px solid #D2B48C;
   border-radius: 12px;
   margin: 10px 0px;
   padding-left: 15px;
  }
  .eye_icon{
   width: 20px;
   height: 20px;
   background-image: url('./open_eye.png');
   background-repeat: no-repeat;
   background-position: center content;
   background-size: cover;
   margin-left: 10px;
  }
  .wrapper p {
   width: 80%;
   height: 60px;
   line-height: 26px;
   font-size: 14px;
   color: #339999;
  }

  .pwdStrength {
   width: 80%;
   list-style: none;
   height: 30px;
   display: none;
   flex: 1;
  }

  .weak,
  .middle,
  .strong {
   height: 15px;
   width: 30px;
   border: 1px solid black;
   background: rgb(238, 238, 238);

  }

  .middle {
   border-left: 0;
   border-right: 0;
  }

  .result {
   width: 30px;
   height: 15px;
   font-size: 14px;
   line-height: 14px;
   text-align: center;
   margin-left: 10px;
  }

JS部分:

//密码的可见与隐藏、
  console.log($('#inputPwd'))
  var eyeFlag = false;
  $('.eye_icon').click(function(){
   if(!eyeFlag){
    $(this).css({'background-image': 'url(' + "./close_eye.png" + ')'});
    $('#inputPwd').attr('type','text');
   }else{
    $(this).css({'background-image': 'url(' + "./open_eye.png" + ')'});
    $('#inputPwd').attr('type','password')
   }
   eyeFlag = !eyeFlag;
  })
  //密码强度验证
  function passValidate(e) {
   var pwd = $.trim(e.value);
   if (pwd === '') {
    $('.pwdStrength').css({'display':'none'})
    $('.weak').css({
     'background': 'rgb(238, 238, 238)'
    });
    $('.middle').css({
     'background': 'rgb(238, 238, 238)'
    });
    $('.strong').css({
     'background': 'rgb(238, 238, 238)'
    });
    $('.result').text('')
   } else {
    $('.pwdStrength').css({'display':'flex'})
    //密码为八位及以上并且字母数字特殊字符三项都包括
    var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
    //密码为七位及以上并且字母、数字、特殊字符三项中有两项,强度是中等
    var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
    var enoughRegex = new RegExp("(?=.{6,}).*", "g");
    if (false == enoughRegex.test(pwd)) {
    } else if (strongRegex.test(pwd)) {
     $('.strong').css({
      'background': '#33ff33'
     });
     $('.result').text('强')
    } else if (mediumRegex.test(pwd)) {

     $('.middle').css({
      'background': '#FFC125'
     });
     $('.strong').css({
      'background': 'rgb(238, 238, 238)'
     });
     $('.result').text('中')
    } else {

     $('.weak').css({
      'background': '#EE4000'
     });
     $('.middle').css({
      'background': 'rgb(238, 238, 238)'
     });
     $('.strong').css({
      'background': 'rgb(238, 238, 238)'
     });
     $('.result').text('弱')
    }
   }
}

效果

密码强度为弱

javascript实现前端input密码输入强度验证

密码强度为中:

javascript实现前端input密码输入强度验证

密码强度为强

javascript实现前端input密码输入强度验证

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
JS 遮照层实现代码
Mar 31 Javascript
JavaScript之自定义类型
May 04 Javascript
JavaScript中this详解
Sep 01 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
Jul 11 Javascript
JS分页的实现(同步与异步)
Sep 16 Javascript
vue.js实现简单轮播图效果
Oct 10 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
vue-router路由模式详解(小结)
Aug 26 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
Dec 29 Javascript
原生js实现html手机端城市列表索引选择城市
Jun 24 #Javascript
jQuery实时统计输入框字数及限制
Jun 24 #jQuery
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 #jQuery
JS forEach跳出循环2种实现方法
Jun 24 #Javascript
js判断鼠标移入移出方向的方法
Jun 24 #Javascript
JS判断数组是否包含某元素实现方法汇总
Jun 24 #Javascript
JS script脚本中async和defer区别详解
Jun 24 #Javascript
You might like
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php的4种常见运行方式
2015/03/20 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
js实现购物车功能
2018/06/12 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
Python爬取三国演义的实现方法
2016/09/12 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python Process多进程实现过程
2019/10/22 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
Python中pass语句的作用是什么
2016/06/01 面试题
高中地理教学反思
2014/01/29 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
法定代表人资格证明书
2014/09/11 职场文书
泰山导游词
2015/02/02 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
SQL Server Agent 服务无法启动
2022/04/20 SQL Server