JavaScript正則驗(yàn)證密碼強(qiáng)弱度的實(shí)現(xiàn)方法
展示

設(shè)計(jì)
密碼強(qiáng)弱度分析
密碼由數(shù)字,字母,特殊符號(hào)組成
- 密碼: 只有數(shù)字- 或者是只有字母,或者是只有特殊符號(hào)——1級(jí):弱
- 兩兩組合: 數(shù)字和字母, 數(shù)字和特殊符號(hào), 字母和特殊符號(hào)——2級(jí):中
- 三者都有: 數(shù)字和字母和特殊符號(hào)——3級(jí):強(qiáng)
代碼
版本一:基本
<!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:100px;
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="password">密碼</label>
<input type="text" id="password" maxlength="16">
<div>
<b>密碼強(qiáng)度:</b>
<em id="strength"></em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<script>
function my$(id) {
return document.getElementById(id);
}
<script>
//獲取文本框注冊(cè)鍵盤抬起事件
my$("password").onkeyup=function () {
//每次鍵盤抬起都要獲取文本框中的內(nèi)容,驗(yàn)證文本框中有什么東西,得到一個(gè)級(jí)別,然后下面的div顯示對(duì)應(yīng)的顏色
//如果密碼的長(zhǎng)度是小于6的,沒有必要判斷
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(password) {
var lvl=0;//默認(rèn)是0級(jí)
//密碼中是否有數(shù)字,或者是字母,或者是特殊符號(hào)
if(/[0-9]/.test(password)){
lvl++;
}
//判斷密碼中有沒有字母
if(/[a-zA-Z]/.test(password)){
lvl++;
}
//判斷密碼中有沒有特殊符號(hào)
if(/[^0-9a-zA-Z_]/.test(password)){
lvl++;
}
return lvl;//1 3
}
</script>
</body>
</html>
上面代碼有點(diǎn)冗余,我們對(duì)其進(jìn)行升級(jí)改寫
版本二:升級(jí)
<!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:100px;
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="password">密碼</label>
<input type="text" id="password" maxlength="16"><!--課外話題-->
<div>
<b>密碼強(qiáng)度:</b>
<em id="strength"></em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<!-- <script src="common.js"></script> -->
<script>
function my$(id) {
return document.getElementById(id);
}
//獲取文本框注冊(cè)鍵盤抬起事件
my$("password").onkeyup=function () {
//每次鍵盤抬起都要獲取文本框中的內(nèi)容,驗(yàn)證文本框中有什么東西,得到一個(gè)級(jí)別,然后下面的div顯示對(duì)應(yīng)的顏色
my$("strengthLevel").className="strengthLv"+(this.value.length>=6?getLvl(this.value) :0);
};
//給我密碼,我返回對(duì)應(yīng)的級(jí)別
function getLvl(password) {
var lvl=0;//默認(rèn)是0級(jí)
//密碼中是否有數(shù)字,或者是字母,或者是特殊符號(hào)
if(/[0-9]/.test(password)){
lvl++;
}
//判斷密碼中有沒有字母
if(/[a-zA-Z]/.test(password)){
lvl++;
}
//判斷密碼中有沒有特殊符號(hào)
if(/[^0-9a-zA-Z_]/.test(password)){
lvl++;
}
return lvl;//最小的值是1,最大值是3
}
</script>
</body>
</html>
到此這篇關(guān)于JavaScript正則驗(yàn)證密碼強(qiáng)弱度的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)JavaScript正則密碼強(qiáng)弱度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript之排序函數(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
排序也是在程序中經(jīng)常用到的算法。這篇文章主要介紹了JavaScript之排序函數(shù),有興趣的可以了解一下2017-06-06
JavaScript基于DOM操作實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)運(yùn)算功能示例
這篇文章主要介紹了JavaScript基于DOM操作實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)運(yùn)算功能,涉及javascript節(jié)點(diǎn)操作、元素遍歷及數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-01-01
JavaScript如何實(shí)現(xiàn)精準(zhǔn)倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了JavaScript如何實(shí)現(xiàn)精準(zhǔn)倒計(jì)時(shí)功能,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
window.setInterval()方法的定義和用法及offsetLeft與style.left的區(qū)別
window.setInterval()方法可以按照指定的周期執(zhí)行來執(zhí)行一段程序。周期是以毫秒為單位的,本文給大家介紹window.setInterval()方法的定義和用法,感興趣的朋友參考下2015-11-11
JavaScript DOM 編程藝術(shù)(第2版)讀書筆記(JavaScript的最佳實(shí)踐)
閱讀了本書第五章關(guān)于使用JavaScript的最佳實(shí)踐,大部分的建議之前都有耳聞,不過閱讀之后有更深的體會(huì)2013-10-10

