js密码强度实时检测代码

时间:2016.04.20 发布人:yan1339105498

js密码强度实时检测代码

已解决问题

谷歌yan1339105498用户在2016.04.20提交了关于“悦翔v5js密码强度实时检测代码”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-09-29T09:44:01。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意 !

希望以下的回答,能够帮助你。

第1个回答

用户名:www.ztbjj.com  

密码强度的判断,陆当在注册网站用户的时候,是一个必须要做的事情,不同的网站,实现的方式是不一样的.
密码的判断,其实也就是一个表单验的其中一项.那我们来实现念委促示司虽眼站这么一个简单的操作.

首先做一个简单的密来自码输入框和一个显示密码强度的进度条.整个整体由vali_pass盒子涵盖.这多染个盒子包含了标题,密码框.再个就是强度进度条.

<d数究现明长钟ivclass="vali_pass"><h3>简单的密码强洲群植跳劳预抗艺半国度检测</h3><inputtype="password"name="pass"><divclass="vali_pass_progres危游s"><spanclass="vali_pass_inner_progress"></span></div></div>

这样我们再来用C问答SS来美化一下

.vali_声汉干部毫农斯pass{width:350px;margin:0auto;padding:10px;border:#eee1pxsolid;text-align:center;}.vali_pas兰区亲零sinput{width:96%;display:block;margin:0;padding:**x;font-si推ze:14px;line-height:20px;}.vali_pass_progress{margin-top:10px;background-color:#efefef;height:10px;border-radius:**x;}.vali_pass_inner_progress{display:block;height:100%;background-color:transparent;border-radius:5px;width:100%;}

这时候我们需要考虑的是,这个进度条可能存在几种状态,前度低的时候显示什么状态,中程度的时候显示什么状态,高程度的时候,显示什么状态.
OK,我们这里用的时候进度条**盒子的宽度,背景色的控制.设置为三个样式

.error{backgr事牛植你映座胡助先就益ound-color:#ff3阳北干伯今序顺太什又300;}.middle{background-color:gold;}.strong{background-color:green;}

这样h**TML结构,CSS美化也就完成.下面我们来做JS的**.

首先少不了的是给密码输入框,加入文本输入监

ele_pass.onkeyup=function(){}

对密码的判断,就得在这个事件内做处理.不过在处神情任逐理之前,我们得初始化一些**.比如进行密码判断的正则表厚笔曾族磁未械离每达式.

varregxs=[];regxs.push(/[^a-zA-Z0果品罪它肥失直构副节-9_]/g);regxs.短团迅心希push(/[a-zA-Z]/g);regxs.pu冲没草够城改形纪凯第心sh(/[0-9]/g);

这里使用了三个正则来依次判断密码的匹配度.**初始化完成后,处理onk真攻察温不丰复附诉eyup事件.首先是获取这个输入框的值,然后其长度.长度我们这里控制至少6个字符.sec作为安全度的一个增加值.每次匹配正则里的表达式,就sec++,说明密码的安全度.然后换算成密码的100之内数值.这个值可以方便用在控制**进度条的宽度.

ele_pass.onkeyup=function(){varval=this.value;varlen=val.length;varsec=0;if(len>=6){//至少六个字符for(vari=0;i<regxs.length;i++){if(val.match(regxs[i])){sec++;}}}varresult=(sec/regxs.length)*100;ele_progress.style.width=result+"%";}

进度条宽度控制好后,我们暂时是看不出进度条的效果的,看前面的CSS代码.这个默认的背景是透明的.那下面我们还得控制不同安全值,他的背景颜色的控制.下面的代码就是用来控制其背景色的.

if(result>0&&result<=50){ele_progress.setAttribute("class",begin_classname+"error");}elseif(result>50&&result<100){ele_progress.setAttribute("class",begin_classname+"middle");}elseif(result==100){ele_progress.setAttribute("class",begin_classname+"strong");}

最后的JS代码:

varele_pass=document.getElementsByTagName("input")[0];varele_progress=document.getElementsByClassName("vali_pass_inner_progress")[0];varbegin_classname=ele_progress.className;varregxs=[];regxs.push(/[^a-zA-Z0-9_]/g);regxs.push(/[a-zA-Z]/g);regxs.push(/[0-9]/g);ele_pass.onkeyup=function(){varval=this.value;varlen=val.length;varsec=0;if(len>=6){//至少六个字符for(vari=0;i<regxs.length;i++){if(val.match(regxs[i])){sec++;}}}varresult=(sec/regxs.length)*100;ele_progress.style.width=result+"%";if(result>0&&result<=50){ele_progress.setAttribute("class",begin_classname+"error");}elseif(result>50&&result<100){ele_progress.setAttribute("class",begin_classname+"middle");}elseif(result==100){ele_progress.setAttribute("class",begin_classname+"strong");}}

那我们的效果也来操作一下看看:

以上就是本文的全部内容,希望对大家学习j**ascript程序设计有所帮助。