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 相关文章推荐
Javascript浅谈之引用类型
Dec 18 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
jquery实现点击弹出层效果的简单实例
Mar 03 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
纯JS代码实现气泡效果
May 04 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
js基于setTimeout与setInterval实现多线程
Jun 17 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
Jun 28 Javascript
使用Vue完成一个简单的todolist的方法
Dec 01 Javascript
JS可断点续传文件上传实现代码解析
Jul 30 Javascript
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
Mar 17 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+MySql编写聊天室
2006/10/09 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
php实现图片缩略图的方法
2016/03/29 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
javascript 对象定义方法 简单易学
2009/03/22 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
浅谈vue项目重构技术要点和总结
2018/01/23 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
Python微信公众号开发平台
2018/01/25 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
创意活动策划书
2014/01/15 职场文书
顶撞领导检讨书
2014/01/29 职场文书
环保建议书500字
2014/05/14 职场文书
校园安全标语
2014/06/07 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书