JavaScript動(dòng)態(tài)檢驗(yàn)密碼強(qiáng)度的實(shí)現(xiàn)方法
平時(shí)我們會(huì)在某些網(wǎng)站的注冊(cè)頁(yè)面或者更改密碼的頁(yè)面發(fā)現(xiàn)當(dāng)我們輸入密碼時(shí),會(huì)有一個(gè)類(lèi)似于進(jìn)度條的長(zhǎng)條進(jìn)行提示用戶(hù)輸入的密碼強(qiáng)度。如下圖:
我看到有些人用幾張不同的圖片來(lái)替換,這樣似乎可以,但是不太好。所以我通過(guò)其他方式實(shí)現(xiàn)。
實(shí)質(zhì)上這是根據(jù)用戶(hù)輸入的不同密碼強(qiáng)度來(lái)改變 顏色區(qū)域的長(zhǎng)度。
密碼強(qiáng)度這個(gè)橫條實(shí)質(zhì)是一個(gè)div,其他標(biāo)記也可以,div里面有一個(gè)span標(biāo)記,我就是通過(guò)改變span的長(zhǎng)度和顏色來(lái)表現(xiàn)密碼的強(qiáng)度的。原理很簡(jiǎn)單,但是在操作過(guò)程中,可能會(huì)遇到一些問(wèn)題很頭疼。
1.先在html頁(yè)面里面定義一個(gè)輸入框用于輸入密碼,一個(gè)一個(gè)div,在div里面放一個(gè)span標(biāo)簽并且設(shè)置相應(yīng)的屬性,type,name,value,class,id等
<font color="#FF0000">*</font>密碼:<input type="text" name="password" id="password" value="請(qǐng)輸入密碼" onfocus=" passwordClear()" onblur="pwdComplex(),passwordValidate()" onkeyup="pwdComplex()" /></td><td><font id="pwdTip">不少于6位字符</font><br/>
2 密碼強(qiáng)度:
<div class="pwdStrongth"><span class="cinnerprogress" id="innerprogress"></span></div><font id="strongthTip"></font>
2.給標(biāo)簽設(shè)置相應(yīng)的css,來(lái)控制標(biāo)簽的樣式,使其感覺(jué)漂亮一點(diǎn):
<style type="text/css"> /*用于修飾密碼強(qiáng)度條外邊框div*/ .pwdStrongth{ border:solid 1px #000000; border-radius:5px; height:15px; width:150px;} /*用于設(shè)置span標(biāo)簽的初始樣式*/ .cinnerprogress{ display: block; height: 100%; background-color:transparent; border-radius: 5px; width: 100%; } /*下面四個(gè)將用于設(shè)置span標(biāo)簽在不同密碼強(qiáng)度的樣式*/ .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.寫(xiě)相應(yīng)的JavaScript方法通過(guò)檢測(cè)用戶(hù)輸入的密碼強(qiáng)度來(lái)調(diào)用不同的樣式來(lái)表現(xiàn)密碼強(qiáng)度,密碼強(qiáng)度的規(guī)則可以自己隨意定義,只需在密碼輸入框的onblur(失去焦點(diǎn))事件和onkeyup(按下鍵盤(pán)上來(lái)之后)事件調(diào)用下面的方法即可:
function pwdComplex()//用于判斷密碼強(qiáng)度的 { var pwdobj=document.getElementById("password"); //獲取密碼輸入框?qū)ο? var pwdTip=document.getElementById("pwdTip");//獲取密碼提示文字對(duì)象 var pwdprogress=document.getElementById("innerprogress"); //獲取span標(biāo)簽對(duì)象 var strongthTip=document.getElementById("strongthTip");//獲取密碼強(qiáng)度提示文字的對(duì)象 var regxs = new Array();//定義一個(gè)數(shù)組用于存放不同的正則表達(dá)式 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;//獲取用戶(hù)輸入的密碼 var len = val.length;//獲取用戶(hù)輸入的密碼長(zhǎng)度 var sec = 0; //定義一個(gè)變量用于存放密碼強(qiáng)度 if (len >= 6) //用于判斷用戶(hù)輸入的密碼強(qiáng)度 { // 至少六個(gè)字符 for (var i = 0; i < regxs.length; i++) //遍歷所有正則表達(dá)式,檢測(cè)用戶(hù)輸入的密碼符合哪些正則表達(dá)式,如果符合則強(qiáng)度+1 { if (val.match(regxs[i])) { sec++; } } } if(sec==0) //通過(guò)不同的密碼強(qiáng)度調(diào)用不同的樣式 { strongthTip.innerText=""; //setAttribute("class", "className")中class是指改變class這個(gè)屬性,所以要帶引號(hào),className是span標(biāo)簽的類(lèi)名,也是對(duì)應(yīng)的樣式名 pwdprogress.setAttribute("class","cinnerprogress"); } else if(sec==1) { strongthTip.innerText="強(qiáng)度:弱"; strongthTip.style.color="red"; pwdprogress.setAttribute("class","strengthLv1"); } else if(sec==2) { strongthTip.innerText="強(qiáng)度:中"; strongthTip.style.color="orange"; pwdprogress.setAttribute("class","strengthLv2"); } else if(sec==3) { strongthTip.innerText="強(qiáng)度:強(qiáng)"; strongthTip.style.color="#09F"; pwdprogress.setAttribute("class","strengthLv3"); } else if(sec==4) { strongthTip.innerText="強(qiáng)度:超強(qiáng)"; strongthTip.style.color="green"; pwdprogress.setAttribute("class","strengthLv4"); } }
以上所述是小編給大家介紹的JavaScript動(dòng)態(tài)檢驗(yàn)密碼強(qiáng)度的實(shí)現(xiàn)方法,實(shí)現(xiàn)一個(gè)模擬后臺(tái)數(shù)據(jù)登入的效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- JS 密碼強(qiáng)度驗(yàn)證(兼容IE,火狐,谷歌)
- js檢驗(yàn)密碼強(qiáng)度(低中高)附圖
- Js密碼強(qiáng)度實(shí)時(shí)驗(yàn)證代碼
- javascript密碼強(qiáng)度校驗(yàn)代碼(兩種方法)
- JavaScript 密碼強(qiáng)度判斷代碼
- js檢測(cè)用戶(hù)輸入密碼強(qiáng)度
- js密碼強(qiáng)度實(shí)時(shí)檢測(cè)代碼
- JavaScript判斷密碼強(qiáng)度(自寫(xiě)代碼)
- js密碼強(qiáng)度校驗(yàn)
- javascript實(shí)現(xiàn)密碼強(qiáng)度顯示
- js實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】
- js正則表達(dá)式驗(yàn)證密碼強(qiáng)度【推薦】
- js密碼強(qiáng)度檢測(cè)
- JS實(shí)現(xiàn)的四級(jí)密碼強(qiáng)度檢測(cè)功能示例
相關(guān)文章
js獲取觸發(fā)事件元素在整個(gè)網(wǎng)頁(yè)中的絕對(duì)坐標(biāo)(示例代碼)
這篇文章主要介紹了js獲取觸發(fā)事件元素在整個(gè)網(wǎng)頁(yè)中的絕對(duì)坐標(biāo)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12使用JavaScript實(shí)現(xiàn)按鈕的漣漪效果實(shí)例代碼
近來(lái)看到個(gè)不錯(cuò)的按鈕點(diǎn)擊效果,當(dāng)點(diǎn)擊時(shí)產(chǎn)生一次水波漣漪效果,挺好玩的,下面這篇文章主要給大家介紹了關(guān)于使用JavaScript實(shí)現(xiàn)按鈕漣漪效果的相關(guān)資料,需要的朋友可以參考下2022-11-11JavaScript通過(guò)極大極小值算法實(shí)現(xiàn)AI井字棋游戲
極小極大值搜索算法是一種零和算法,是用來(lái)最小化對(duì)手的利益,最大化自己的利益的算法。極小極大之搜索算法常用于棋類(lèi)游戲等雙方較量的游戲和程序,算是一種電腦AI算法。本文將介紹通過(guò)這個(gè)算法實(shí)現(xiàn)的一個(gè)井字棋游戲,需要的可以參考一下2021-12-12在原生不支持的舊環(huán)境中添加兼容的Object.keys實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇在原生不支持的舊環(huán)境中添加兼容的Object.keys實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09js 獲取本周、上周、本月、上月、本季度、上季度的開(kāi)始結(jié)束日期
這篇文章主要介紹了js 獲取 本周、上周、本月、上月、本季度、上季度的開(kāi)始結(jié)束日期,需要的朋友可以參考下2020-02-02iis6+javascript Add an Extension File
iis6+javascript Add an Extension File...2007-06-06