JavaScript动态检验密码强度的实现方法


Posted in Javascript onNovember 09, 2016

平时我们会在某些网站的注册页面或者更改密码的页面发现当我们输入密码时,会有一个类似于进度条的长条进行提示用户输入的密码强度。如下图:

JavaScript动态检验密码强度的实现方法

我看到有些人用几张不同的图片来替换,这样似乎可以,但是不太好。所以我通过其他方式实现。

实质上这是根据用户输入的不同密码强度来改变 颜色区域的长度。

密码强度这个横条实质是一个div,其他标记也可以,div里面有一个span标记,我就是通过改变span的长度和颜色来表现密码的强度的。原理很简单,但是在操作过程中,可能会遇到一些问题很头疼。

1.先在html页面里面定义一个输入框用于输入密码,一个一个div,在div里面放一个span标签并且设置相应的属性,type,name,value,class,id等

<font color="#FF0000">*</font>密码:<input type="text" name="password" id="password" value="请输入密码" onfocus=" passwordClear()" onblur="pwdComplex(),passwordValidate()" onkeyup="pwdComplex()" /></td><td><font id="pwdTip">不少于6位字符</font><br/>

2 密码强度:

<div class="pwdStrongth"><span class="cinnerprogress" id="innerprogress"></span></div><font id="strongthTip"></font>

2.给标签设置相应的css,来控制标签的样式,使其感觉漂亮一点:

<style type="text/css">
/*用于修饰密码强度条外边框div*/
.pwdStrongth{
border:solid 1px #000000;
border-radius:5px;
height:15px;
width:150px;}
/*用于设置span标签的初始样式*/
.cinnerprogress{ 
display: block;
height: 100%;
background-color:transparent;
border-radius: 5px;
width: 100%;
}
/*下面四个将用于设置span标签在不同密码强度的样式*/
.strengthLv1{ 
display: block;
height: 100%;
border-radius: 5px;
background:red;width:25%;}
.strengthLv2{
display: block;
height: 100%;
border-radius: 5px;
background:orange;width:50%;}
.strengthLv3{
display: block;
height: 100%;
border-radius: 5px;
background:#09F;width:75%;}
.strengthLv4{
display: block;
height: 100%;
border-radius: 5px;
background:green;width:100%;}
</style>

3.写相应的JavaScript方法通过检测用户输入的密码强度来调用不同的样式来表现密码强度,密码强度的规则可以自己随意定义,只需在密码输入框的onblur(失去焦点)事件和onkeyup(按下键盘上来之后)事件调用下面的方法即可:

function pwdComplex()//用于判断密码强度的
{
var pwdobj=document.getElementById("password"); //获取密码输入框对象
var pwdTip=document.getElementById("pwdTip");//获取密码提示文字对象
var pwdprogress=document.getElementById("innerprogress"); //获取span标签对象
var strongthTip=document.getElementById("strongthTip");//获取密码强度提示文字的对象
var regxs = new Array();//定义一个数组用于存放不同的正则表达式
regxs[0]=/[^a-zA-Z0-9_]/g;
regxs[1]=/[a-z]/g;
regxs[2]=/[0-9]/g;
regxs[3]=/[A-Z]/g;
var val = pwdobj.value;//获取用户输入的密码
var len = val.length;//获取用户输入的密码长度
var sec = 0; //定义一个变量用于存放密码强度
if (len >= 6) //用于判断用户输入的密码强度
{ // 至少六个字符
for (var i = 0; i < regxs.length; i++) //遍历所有正则表达式,检测用户输入的密码符合哪些正则表达式,如果符合则强度+1
{
if (val.match(regxs[i])) 
{
sec++;
}
}
}
if(sec==0) //通过不同的密码强度调用不同的样式
{
strongthTip.innerText="";
//setAttribute("class", "className")中class是指改变class这个属性,所以要带引号,className是span标签的类名,也是对应的样式名
pwdprogress.setAttribute("class","cinnerprogress");
}
else if(sec==1)
{
strongthTip.innerText="强度:弱";
strongthTip.style.color="red";
pwdprogress.setAttribute("class","strengthLv1");
}
else if(sec==2)
{
strongthTip.innerText="强度:中"; 
strongthTip.style.color="orange";
pwdprogress.setAttribute("class","strengthLv2");
}
else if(sec==3)
{
strongthTip.innerText="强度:强"; 
strongthTip.style.color="#09F";
pwdprogress.setAttribute("class","strengthLv3");
}
else if(sec==4)
{
strongthTip.innerText="强度:超强"; 
strongthTip.style.color="green";
pwdprogress.setAttribute("class","strengthLv4");
}
}

以上所述是小编给大家介绍的JavaScript动态检验密码强度的实现方法,实现一个模拟后台数据登入的效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript中的作用域scope介绍
Dec 28 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
Jul 13 Javascript
js实现幻灯片播放图片示例代码
Nov 07 Javascript
textarea 控制输入字符字节数(示例代码)
Dec 27 Javascript
javascript 获取浏览器版本
Jan 21 Javascript
浅谈javascript 函数表达式和函数声明的区别
Jan 05 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
js实现鼠标拖拽多选功能示例
Aug 01 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
Vue如何实现监听组件原生事件
Jul 03 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
jquery获取easyui日期控件的值实现方法
Nov 09 #Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 #Javascript
给easyui datebox扩展一个清空的实例
Nov 09 #Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 #Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 #Javascript
jquery easyui validatebox remote的使用详解
Nov 09 #Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 #Javascript
You might like
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python打开windows应用程序的实例
2019/06/28 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
如何用SQL语句进行模糊查找
2015/09/25 面试题
店长岗位的工作内容
2013/11/12 职场文书
留学推荐信写作指南
2014/01/25 职场文书
会计岗位职责范本
2014/03/07 职场文书
软环境建设心得体会
2014/09/09 职场文书
法定代表人免职证明
2015/06/24 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
vue实现在data里引入相对路径
2022/06/05 Vue.js
mysql sock 文件解析及作用讲解
2022/07/15 MySQL