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 相关文章推荐
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
Sep 26 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
jquery实现的下拉和收缩效果示例
Aug 21 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
Dec 09 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
js手动播放图片实现图片轮播效果
Sep 17 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
Dec 07 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
vue.js使用3DES加密的方法示例
May 18 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 Javascript
微信小程序引入Vant组件库过程解析
Aug 06 Javascript
package.json中homepage属性的作用详解
Mar 11 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 无限极分类
2008/03/27 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
python方向键控制上下左右代码
2018/01/20 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
越南综合购物网站:Lazada越南
2019/06/10 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
简历自我评价模版
2014/01/31 职场文书
四下基层实施方案
2014/03/28 职场文书
商铺消防安全责任书
2014/07/29 职场文书
购房委托书
2014/10/15 职场文书
时尚女魔头观后感
2015/06/04 职场文书