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网页制作特殊效果用随机数
May 22 Javascript
js移除事件 js绑定事件实例应用
Nov 28 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
PHP实现记录代码运行时间封装类实例教程
May 08 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
关于vue的语法规则检测报错问题的解决
May 21 Javascript
微信小程序用户信息encryptedData详解
Aug 24 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 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与SQL注入攻击[三]
2007/04/17 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js实现tab切换效果
2017/02/16 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
Angular中支持SCSS的方法
2017/11/18 Javascript
学习Vue组件实例
2018/04/28 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
python转换摩斯密码示例
2014/02/16 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
python中if及if-else如何使用
2020/06/02 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
自我鉴定四大框架
2014/01/17 职场文书
优秀员工表扬信
2014/01/17 职场文书
暑假家长评语大全
2014/04/17 职场文书
好的旅游活动方案
2014/08/19 职场文书
学生上课说话检讨书
2014/10/25 职场文书
企业百日安全活动总结
2015/05/07 职场文书
黄埔军校观后感
2015/06/10 职场文书
党员转正大会主持词
2015/07/02 职场文书
python中%格式表达式实例用法
2021/06/18 Python
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
flex弹性布局详解
2022/03/20 HTML / CSS