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 相关文章推荐
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
Jul 01 Javascript
JQuery从头学起第二讲
Jul 04 Javascript
javascript下string.format函数补充
Aug 24 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
使用JavaScript刷新网页的方法
Jun 04 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
Aug 23 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
AngularJS中ng-class用法实例分析
Jul 06 Javascript
Js面试算法详解
Apr 08 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 Javascript
JavaScript实现跟随鼠标移动的盒子
Jan 28 Javascript
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
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
家长给幼儿园的表扬信
2014/01/09 职场文书
经典公益广告词
2014/03/13 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
学校财务管理制度
2015/08/04 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
导游词之西安大清真寺
2019/12/17 职场文书