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 相关文章推荐
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
js中string转int把String类型转化成int类型
Aug 13 Javascript
jQuery提示插件alertify使用指南
Apr 21 Javascript
jquery mobile开发常见问题分析
Jan 21 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
May 12 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
Jul 24 Javascript
axios对请求各种异常情况处理的封装方法
Sep 25 Javascript
apicloud拉起小程序并传递参数的方法示例
Nov 21 Javascript
vue component 中引入less文件报错 Module build failed
Apr 17 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生成Gif图片验证码
2013/10/27 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
详解jQuery事件
2017/01/13 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
基于python历史天气采集的分析
2019/02/14 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
python SVM 线性分类模型的实现
2019/07/19 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
python实现飞机大战项目
2020/03/11 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
开业庆典策划方案
2014/02/18 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
聊聊redis-dump工具安装问题
2022/01/18 Redis