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 相关文章推荐
用JavaScript事件串连执行多个处理过程的方法
Mar 09 Javascript
JS图像无缝滚动脚本非常好用
Feb 10 Javascript
jquery实现人性化的有选择性禁用鼠标右键
Jun 30 Javascript
javascript实现自动输出文本(打字特效)
Aug 27 Javascript
JS简单实现移动端日历功能示例
Dec 28 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
将 vue 生成的 js 上传到七牛的实例
Jul 28 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
深入理解Vue官方文档梳理之全局API
Nov 22 Javascript
从vue源码看props的用法
Jan 09 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
php学习笔记之基础知识
2014/11/08 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
JS 进度条效果实现代码整理
2011/05/21 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
Python模块的加载讲解
2019/01/15 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
ubuntu上安装python的实例方法
2019/09/30 Python
python实现KNN分类算法
2019/10/16 Python
浅谈django 重载str 方法
2020/05/19 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
财务会计自荐信范文
2014/02/21 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
优秀党员推荐材料
2014/12/18 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers