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 开发中规范性的一点感想
Jun 23 Javascript
Javascript 获取滚动条位置等信息的函数
Sep 08 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 Javascript
基于jQuery实现的查看全文功能【实用】
Dec 11 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
Javascript中绑定click事件的四种方式介绍
Oct 26 Javascript
原生JS实现的放大镜特效示例【测试可用】
Dec 08 Javascript
JS实现公告上线滚动效果
Jan 10 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个人网站架设连环讲(三)
2006/10/09 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
文明餐桌活动方案
2014/02/11 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
男人帮观后感
2015/06/18 职场文书
创业计划书之甜品店
2019/09/18 职场文书