JavaScript实现密码强度实时验证


Posted in Javascript onMarch 18, 2020

JavaScript实现密码强度实时验证,供大家参考,具体内容如下

在网络服务中,为了保证用户的私密信息足够安全,会要求用户输入具有一定安全级别的密码,这样可以更好的防止他人盗用。比如在注册一些游戏账号时,如果输入纯数字或纯英文字符低于6位,就会提示密码强度太低,请重新输入。一些密码强度验证的方法都是计算字符的类型,然后分类加权累算。权重越高,相应的强度也就越高。

具体的写法及实现方式有很多种,本文只介绍其中一种方案

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>密码强度实时验证</title>

</head>
<body>
 <h2>密码强度实时验证</h2>
 <input id="passwordStrength" data-hint='请输入密码' type="password" ><span id="showStrength"></span>

 <script type="text/javascript">

  window.onload = function () {
   function setCss(_this,cssOption){
   //判断节点类型
   if (!_this || _this.nodeType ===3 || _this.nodeType === 8 ||!_this.style) {
    return;
   }
   for(var cs in cssOption){
    _this.style[cs] = cssOption[cs];
   }
   return _this;
  } 

  function trim(chars){
   return (chars ||"").replace(/^(\s|\u00a0)+|(\s|\u00a0)+$/g,"");
  }
  function passwordStrength(passwordStrength,showStrength){
   var self = this;

   /*字符权重;
   数字1,字母2,其他字符为3
   当密码长度小于6时不符合标准
   长度>=6,强度小于10,强度弱
   长度>=6,长度>=10且<15,强度中
   长度>=6,强度>=15,强*/
   passwordStrength.onkeyup = function(){
    var _color = ["red","yellow","orange","green"],
      msgs = ["密码太短","弱","中","强"],
      _strength = 0,
      _v= trim(passwordStrength.value)
    _vL= _v.length,
      i=0;

    var charStrength = function(char){
     //计算单个字符强度
     if(char>=48 && char <=57){//数字
      return 1;
     }
     if(char>=97 && char<=122){//小写
      return 2;
     }else{
      return 3; //特殊字符
     }
    }

    if(_vL<6){//计算模式
     showStrength.innerText = msgs[0];
     setCss(showStrength,{
      "color":_color[0]
     })
    }else{
     for(;i<_vL;i++){
      //遍历字符
      _strength+=charStrength(_v.toLocaleLowerCase().charCodeAt(i));
     }
     if(_strength<10){
      //强度小于10
      showStrength.innerText = msgs[1];
      setCss(showStrength,{
       "color":_color[1]
      })
     }
     if(_strength>=10&&_strength<15){
      showStrength.innerText = msgs[2];
      setCss(showStrength,{
       "color":_color[2]
      })
     }
     if(_strength>=15){
      showStrength.innerText = msgs[3];
      setCss(showStrength,{
       "color":_color[3]
      })
     }
    }
   }
  }
  passwordStrength(
    document.getElementById("passwordStrength"),
    document.getElementById("showStrength"));

 };
 </script>
</body>
</html>

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

Javascript 相关文章推荐
FireFox与IE 下js兼容触发click事件的代码
Nov 20 Javascript
jquery中获取select选中值的代码
Jun 27 Javascript
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
jQuery仿天猫实现超炫的加入购物车
May 04 Javascript
javasript实现密码的隐藏与显示
May 08 Javascript
浅谈Javascript数据属性与访问器属性
Jul 26 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
JS实现的全选、全不选及反选功能【案例】
Feb 19 Javascript
Vue实现图书管理小案例
Dec 03 Vue.js
js如何验证密码强度
Mar 18 #Javascript
js验证密码强度解析
Mar 18 #Javascript
js实现超级玛丽小游戏
Mar 18 #Javascript
vue 封装 Adminlte3组件的实现
Mar 18 #Javascript
JavaScript仿京东秒杀倒计时
Mar 17 #Javascript
JavaScript写个贪吃蛇小游戏(超详细)
Mar 17 #Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 #Javascript
You might like
解析csv数据导入mysql的方法
2013/07/01 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
Express的路由详解
2015/12/10 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
JavaScript实现短信倒计时60s
2017/10/09 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
python模块之StringIO使用示例
2015/04/08 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python内置函数reversed()用法分析
2018/03/20 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
python requests.get带header
2020/05/05 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
小组口号大全
2014/06/09 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书