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 相关文章推荐
window.onresize 多次触发的解决方法
Nov 08 Javascript
使用js判断当前时区TimeZone是否是夏令时
Feb 23 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 Javascript
JS实现重新加载当前页面
Nov 29 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
js实现瀑布流效果(自动生成新的内容)
Mar 16 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
vue使用pdfjs显示PDF可复制的实现方法
Dec 14 Javascript
JS插入排序简单理解与实现方法分析
Nov 25 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
vue页面引入three.js实现3d动画场景操作
Aug 10 Javascript
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
原生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
深入php之规范编程命名小结
2013/05/15 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
jquery 手势密码插件
2017/03/17 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
Python实现文件按照日期命名的方法
2015/07/09 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
基于python实现高速视频传输程序
2019/05/05 Python
python gdal安装与简单使用
2019/08/01 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
五一活动标语
2014/06/30 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
暑期培训班策划方案
2014/08/26 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
网络研修随笔感言
2015/11/18 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Python中的程序流程控制语句
2022/02/24 Python
Hive HQL支持2种查询语句风格
2022/06/25 数据库