JS正則表達(dá)式驗(yàn)證密碼強(qiáng)度
本文實(shí)例為大家分享了JS正則表達(dá)式驗(yàn)證密碼強(qiáng)度的具體代碼,供大家參考,具體內(nèi)容如下
代碼1:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style type="text/css">
#dv{
width: 300px;
height:200px;
position: absolute;
left:300px;
top:100px;
}
.strengthLv0 {
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv1 {
background: red;
height: 6px;
width: 40px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv2 {
background: orange;
height: 6px;
width: 80px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv3 {
background: green;
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
</style>
<body>
<div id="dv">
<label for="pwd">密碼</label>
<input type="text" id="pwd" maxlength="16"><!--課外話(huà)題-->
<div>
<em>密碼強(qiáng)度:</em>
<em id="strength"></em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<script src="common.js"></script>
<script>
/*
*
* 密碼: 數(shù)字,字母,特殊符號(hào)
*
* 密碼: 只有數(shù)字- 或者是只有字母,或者是只有特殊符號(hào)---1級(jí)---弱
* 兩兩組合: 數(shù)字和字母, 數(shù)字和特殊符號(hào), 字母和特殊符號(hào) -----2級(jí)----中
* 三者都有: 數(shù)字和字母和特殊符號(hào)------3級(jí)-----強(qiáng)
*
* */
//獲取文本框注冊(cè)鍵盤(pán)抬起事件
my$("pwd").onkeyup=function () {
//每次鍵盤(pán)抬起都要獲取文本框中的內(nèi)容,驗(yàn)證文本框中有什么東西,得到一個(gè)級(jí)別,然后下面的div顯示對(duì)應(yīng)的顏色
//如果密碼的長(zhǎng)度是小于6的,沒(méi)有必要判斷
if(this.value.length>=6){
var lvl=getLvl(this.value);
if(lvl==1){
//弱
my$("strengthLevel").className="strengthLv1";
}else if(lvl==2){
my$("strengthLevel").className="strengthLv2";
}else if(lvl==3){
my$("strengthLevel").className="strengthLv3";
}else{
my$("strengthLevel").className="strengthLv0";
}
}else{
my$("strengthLevel").className="strengthLv0";
}
};
//給我密碼,我返回對(duì)應(yīng)的級(jí)別
function getLvl(pwd) {
var lvl=0;//默認(rèn)是0級(jí)
//密碼中是否有數(shù)字,或者是字母,或者是特殊符號(hào)
if(/[0-9]/.test(pwd)){
lvl++;
}
//判斷密碼中有沒(méi)有字母
if(/[a-zA-Z]/.test(pwd)){
lvl++;
}
//判斷密碼中有沒(méi)有特殊符號(hào)
if(/[^0-9a-zA-Z_]/.test(pwd)){
lvl++;
}
return lvl;//1 3
}
</script>
</body>
</html>
優(yōu)化代碼2:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style type="text/css">
#dv{
width: 300px;
height:200px;
position: absolute;
left:300px;
top:100px;
}
.strengthLv0 {
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv1 {
background: red;
height: 6px;
width: 40px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv2 {
background: orange;
height: 6px;
width: 80px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv3 {
background: green;
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
</style>
<body>
<div id="dv">
<label for="pwd">密碼</label>
<input type="text" id="pwd" maxlength="16"><!--課外話(huà)題-->
<div>
<em>密碼強(qiáng)度:</em>
<em id="strength"></em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<script src="common.js"></script>
<script>
//獲取文本框注冊(cè)鍵盤(pán)抬起事件
my$("pwd").onkeyup=function () {
//每次鍵盤(pán)抬起都要獲取文本框中的內(nèi)容,驗(yàn)證文本框中有什么東西,得到一個(gè)級(jí)別,然后下面的div顯示對(duì)應(yīng)的顏色
//如果密碼的長(zhǎng)度是小于6的,沒(méi)有必要判斷
// if(this.value.length>=6){
// var lvl= getLvl(this.value);
// my$("strengthLevel").className="strengthLv"+lvl;
// }else{
// my$("strengthLevel").className="strengthLv0";
// }
my$("strengthLevel").className="strengthLv"+(this.value.length>=6?getLvl(this.value) :0);
};
//給我密碼,我返回對(duì)應(yīng)的級(jí)別
function getLvl(pwd) {
var lvl=0;//默認(rèn)是0級(jí)
//密碼中是否有數(shù)字,或者是字母,或者是特殊符號(hào)
if(/[0-9]/.test(pwd)){
lvl++;
}
//判斷密碼中有沒(méi)有字母
if(/[a-zA-Z]/.test(pwd)){
lvl++;
}
//判斷密碼中有沒(méi)有特殊符號(hào)
if(/[^0-9a-zA-Z_]/.test(pwd)){
lvl++;
}
return lvl;//最小的值是1,最大值是3
}
</script>
</body>
</html>
common.js
/**
* 獲取指定標(biāo)簽對(duì)象
* @param id 標(biāo)簽的id屬性值
* @returns {Element}根據(jù)id屬性值返回指定標(biāo)簽對(duì)象
*/
function my$(id) {
return document.getElementById(id);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript函數(shù)及其prototype詳解
這篇文章主要介紹了JavaScript函數(shù)及其prototype詳解的相關(guān)資料,需要的朋友可以參考下2023-03-03
微信小程序獲取用戶(hù)信息及手機(jī)號(hào)(后端TP5.0)
這篇文章主要為大家詳細(xì)介紹了微信小程序獲取用戶(hù)信息及手機(jī)號(hào),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
JS實(shí)現(xiàn)自適應(yīng)高度表單文本框的方法
這篇文章主要介紹了JS實(shí)現(xiàn)自適應(yīng)高度表單文本框的方法,實(shí)例分析了針對(duì)IE內(nèi)核與非IE內(nèi)核下的javascript控制文本框樣式的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02
JavaScript事件監(jiān)聽(tīng)之鍵盤(pán)事件詳細(xì)介紹
在實(shí)際應(yīng)用中我們常常會(huì)遇到監(jiān)聽(tīng)按鍵輸入和鼠標(biāo)點(diǎn)擊事件,下面這篇文章主要給大家介紹了關(guān)于JavaScript事件監(jiān)聽(tīng)之鍵盤(pán)事件的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
layui添加動(dòng)態(tài)菜單與選項(xiàng)卡 AJAX請(qǐng)求的例子
今天小編就為大家分享一篇layui添加動(dòng)態(tài)菜單與選項(xiàng)卡 AJAX請(qǐng)求的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
教你修改element-ui源碼給el-dialog添加全屏功能
el-dialog組件提供了fullscreen功能,但是無(wú)法滿(mǎn)足業(yè)務(wù)需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對(duì)源碼進(jìn)行修改,這篇文章主要介紹了修改element-ui源碼給el-dialog添加全屏功能,需要的朋友可以參考下2022-11-11
Javascript腳本獲取form和input內(nèi)容的方法(兩種方法)
隨著js的發(fā)展,許多的網(wǎng)頁(yè)數(shù)據(jù)處理完全可以由js腳本解決,而不需要發(fā)送到服務(wù)器,這里分享兩種Javascript腳本獲取form和input內(nèi)容的方法,感興趣的朋友跟隨小編一起看看吧2023-05-05
JavaScript類(lèi)型檢測(cè)之typeof 和 instanceof 的缺陷與優(yōu)化
在javascript中,typeof 和 instanceof 是用來(lái)判斷數(shù)據(jù)類(lèi)型比較通用的兩個(gè)方法,這篇文章的目的是通過(guò)對(duì)這兩個(gè)方法介紹來(lái)分析其存在的不足并提出優(yōu)化方案2016-01-01
js函數(shù)定時(shí)器實(shí)現(xiàn)定時(shí)讀取系統(tǒng)實(shí)時(shí)連接數(shù)
這篇文章主要介紹了使用js函數(shù)定時(shí)器實(shí)現(xiàn)定時(shí)讀取系統(tǒng)實(shí)時(shí)連接數(shù),需要的朋友可以參考下2014-04-04

