js实现密码强度检验


Posted in Javascript onJanuary 15, 2017

最近一直在做通行证项目,里面的注册模块中输入密码需要显示密码强度(低中高)。今天就把做的效果给大家分享下,代码没有网上搜索的那么复杂,能够满足一般的需求。

html 代码如下:

<!DOCTYPE HTML>
<html lang="en">
<head>
 <meta charset="utf-8"/>
 <title>密码强度</title>
 <style type="text/css">
 #passStrength{height:6px;width:120px;border:1px solid #ccc;padding:2px;}
 .strengthLv1{background:red;height:6px;width:40px;}
 .strengthLv2{background:orange;height:6px;width:80px;}
 .strengthLv3{background:green;height:6px;width:120px;}
 </style>
</head>
<body>
 <input type="password" name="pass" id="pass" maxlength="16"/>
 <div class="pass-wrap">
 <em>密码强度:</em>
 <div id="passStrength"></div>
 </div>
</body>
</html>
<script type="text/javascript" src="js/passwordStrength.js"></script>
<script type="text/javascript">
new PasswordStrength('pass','passStrength');
</script>

js 代码如下:

function PasswordStrength(passwordID,strengthID){
 this.init(strengthID);
 var _this = this;
 document.getElementById(passwordID).onkeyup = function(){
 _this.checkStrength(this.value);
 }
};
PasswordStrength.prototype.init = function(strengthID){
 var id = document.getElementById(strengthID);
 var div = document.createElement('div');
 var strong = document.createElement('strong');
 this.oStrength = id.appendChild(div);
 this.oStrengthTxt = id.parentNode.appendChild(strong);
};
PasswordStrength.prototype.checkStrength = function (val){
 var aLvTxt = ['','低','中','高'];
 var lv = 0;
 if(val.match(/[a-z]/g)){lv++;}
 if(val.match(/[0-9]/g)){lv++;}
 if(val.match(/(.[^a-z0-9])/g)){lv++;}
 if(val.length < 6){lv=0;}
 if(lv > 3){lv=3;}
 this.oStrength.className = 'strengthLv' + lv;
 this.oStrengthTxt.innerHTML = aLvTxt[lv];
};

效果图:

js实现密码强度检验

使用说明:

1、对象的第一个参数是密码输入框的 id,第二个参数是密码强度长条的 id。

2、checkStrength 方法中可以自定义密码强度的规则。

3、密码强度显示低中高分别对应 3 个 css 样式(strengthLv1、strengthLv2、strengthLv3)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript实现计算两个日期的间隔天数
Aug 14 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
Aug 25 Javascript
js调用css属性写法
Sep 21 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
jQuery老黄历完整实现方法
Jan 16 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
关于AngularJS中几种Providers的区别总结
May 17 Javascript
vue组件开发之slider组件使用详解
Aug 21 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
Javascript设计模式之原型模式详细
Oct 05 Javascript
JavaScript实现图像模糊化的方法实例
Jan 15 #Javascript
vue实现简单实时汇率计算功能
Jan 15 #Javascript
bootstrap——bootstrapTable实现隐藏列的示例
Jan 14 #Javascript
JS轮播图中缓动函数的封装
Nov 25 #Javascript
JavaScript字符串对象
Jan 14 #Javascript
jquery mobile移动端幻灯片滑动切换效果
Apr 15 #Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
Jan 14 #Javascript
You might like
PHP通用检测函数集合
2006/11/25 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
使用Python开发windows GUI程序入门实例
2014/10/23 Python
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python端口扫描简单程序
2016/11/10 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
python要安装在哪个盘
2020/06/15 Python
详解python logging日志传输
2020/07/01 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
商场租赁意向书
2014/07/30 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2014年减负工作总结
2014/12/10 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
在Docker容器中部署SQL Server
2022/04/11 Servers