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 相关文章推荐
汉化英文版的Dreamweaver CS5并自动提示jquery
Nov 25 Javascript
javascript动态加载三
Aug 22 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
jQuery图片渐变特效的简单实现
Jun 25 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
vue-cli2 构建速度优化的实现方法
Jan 08 Javascript
详解基于node.js的脚手架工具开发经历
Jan 28 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 Javascript
JS前端宏任务微任务及Event Loop使用详解
Jul 23 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
php购物车实现代码
2011/10/10 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
Python程序运行原理图文解析
2018/02/10 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
我就是这样学习Python中的列表
2019/06/02 Python
python 搜索大文件的实例代码
2019/07/08 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python树的同构学习笔记
2019/09/14 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
抗洪抢险事迹材料
2014/05/06 职场文书
男性健康日的活动方案
2014/08/18 职场文书
英语教师求职信范文
2015/03/20 职场文书
党员承诺书范文2015
2015/04/27 职场文书
TypeScript 内置高级类型编程示例
2022/09/23 Javascript