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 相关文章推荐
htm调用JS代码
Mar 15 Javascript
Document:getElementsByName()使用方法及示例
Oct 28 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
jQuery弹出遮罩层效果完整示例
Sep 13 Javascript
js html5 css俄罗斯方块游戏再现
Oct 17 Javascript
工厂模式在JS中的实践
Jan 18 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
BootStrap的两种模态框方式
May 10 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 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
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
Python编程实现正则删除命令功能
2017/08/30 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python中kmeans聚类实现代码
2018/02/23 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
什么是python类属性
2020/06/10 Python
python 绘制场景热力图的示例
2020/09/23 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
python3判断IP地址的方法
2021/03/04 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
小学生读书感言
2014/02/12 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
自我鉴定书
2014/03/24 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
vue首次渲染全过程
2021/04/21 Vue.js
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
Java 多线程并发FutureTask
2022/06/28 Java/Android