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之引用类型介绍
Aug 10 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
Jan 05 Javascript
JavaScript 七大技巧(二)
Dec 13 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
Jan 10 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
Bootstrap导航条学习使用(二)
Feb 08 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
Aug 06 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
Vue实现图书管理案例
Jan 20 Vue.js
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防注入代码
2010/04/07 PHP
php实现读取内存顺序号
2015/03/29 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
JsChart组件使用详解
2018/03/04 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
Linux文件系统类型
2012/02/15 面试题
计算机专业推荐信范文
2013/11/27 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers