JavaScript實(shí)現(xiàn)密碼強(qiáng)度實(shí)時(shí)驗(yàn)證
JavaScript實(shí)現(xiàn)密碼強(qiáng)度實(shí)時(shí)驗(yàn)證,供大家參考,具體內(nèi)容如下
在網(wǎng)絡(luò)服務(wù)中,為了保證用戶的私密信息足夠安全,會(huì)要求用戶輸入具有一定安全級(jí)別的密碼,這樣可以更好的防止他人盜用。比如在注冊一些游戲賬號(hào)時(shí),如果輸入純數(shù)字或純英文字符低于6位,就會(huì)提示密碼強(qiáng)度太低,請重新輸入。一些密碼強(qiáng)度驗(yàn)證的方法都是計(jì)算字符的類型,然后分類加權(quán)累算。權(quán)重越高,相應(yīng)的強(qiáng)度也就越高。
具體的寫法及實(shí)現(xiàn)方式有很多種,本文只介紹其中一種方案
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>密碼強(qiáng)度實(shí)時(shí)驗(yàn)證</title>
</head>
<body>
<h2>密碼強(qiáng)度實(shí)時(shí)驗(yàn)證</h2>
<input id="passwordStrength" data-hint='請輸入密碼' type="password" ><span id="showStrength"></span>
<script type="text/javascript">
window.onload = function () {
function setCss(_this,cssOption){
//判斷節(jié)點(diǎn)類型
if (!_this || _this.nodeType ===3 || _this.nodeType === 8 ||!_this.style) {
return;
}
for(var cs in cssOption){
_this.style[cs] = cssOption[cs];
}
return _this;
}
function trim(chars){
return (chars ||"").replace(/^(\s|\u00a0)+|(\s|\u00a0)+$/g,"");
}
function passwordStrength(passwordStrength,showStrength){
var self = this;
/*字符權(quán)重;
數(shù)字1,字母2,其他字符為3
當(dāng)密碼長度小于6時(shí)不符合標(biāo)準(zhǔn)
長度>=6,強(qiáng)度小于10,強(qiáng)度弱
長度>=6,長度>=10且<15,強(qiáng)度中
長度>=6,強(qiáng)度>=15,強(qiáng)*/
passwordStrength.onkeyup = function(){
var _color = ["red","yellow","orange","green"],
msgs = ["密碼太短","弱","中","強(qiáng)"],
_strength = 0,
_v= trim(passwordStrength.value)
_vL= _v.length,
i=0;
var charStrength = function(char){
//計(jì)算單個(gè)字符強(qiáng)度
if(char>=48 && char <=57){//數(shù)字
return 1;
}
if(char>=97 && char<=122){//小寫
return 2;
}else{
return 3; //特殊字符
}
}
if(_vL<6){//計(jì)算模式
showStrength.innerText = msgs[0];
setCss(showStrength,{
"color":_color[0]
})
}else{
for(;i<_vL;i++){
//遍歷字符
_strength+=charStrength(_v.toLocaleLowerCase().charCodeAt(i));
}
if(_strength<10){
//強(qiáng)度小于10
showStrength.innerText = msgs[1];
setCss(showStrength,{
"color":_color[1]
})
}
if(_strength>=10&&_strength<15){
showStrength.innerText = msgs[2];
setCss(showStrength,{
"color":_color[2]
})
}
if(_strength>=15){
showStrength.innerText = msgs[3];
setCss(showStrength,{
"color":_color[3]
})
}
}
}
}
passwordStrength(
document.getElementById("passwordStrength"),
document.getElementById("showStrength"));
};
</script>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于JavaScript如何實(shí)現(xiàn)私有成員的語法特征及私有成員的實(shí)現(xiàn)方式
本文給大家介紹基于JavaScript如何實(shí)現(xiàn)私有成員的語法特征及私有成員的實(shí)現(xiàn)方式,涉及到j(luò)avascript語法特征相關(guān)知識(shí),對本文感興趣的朋友快來一起學(xué)習(xí)吧2015-10-10
Javascript+CSS實(shí)現(xiàn)影像卷簾效果思路及代碼
Arcmap里面的一個(gè)卷簾效果肯定記憶很深刻,我也對這種比較炫的卷簾效果做了一下研究,現(xiàn)在給大家匯報(bào)下結(jié)果2014-10-10
基于JavaScript實(shí)現(xiàn) 網(wǎng)頁切出 網(wǎng)站title變化代碼
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn) 網(wǎng)頁切出 網(wǎng)站title變化代碼的相關(guān)資料,需要的朋友可以參考下2016-04-04
用javascript動(dòng)態(tài)調(diào)整iframe高度的代碼
用javascript動(dòng)態(tài)調(diào)整iframe高度的代碼...2007-04-04
JavaScript使用addEventListener添加事件監(jiān)聽用法實(shí)例
這篇文章主要介紹了JavaScript使用addEventListener添加事件監(jiān)聽的方法,實(shí)例分析了addEventListener方法的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06
使用JS代碼實(shí)現(xiàn)頁面添加水印的方法詳解
這篇文章主要介紹了使用80 行 JS 代碼實(shí)現(xiàn)頁面添加水?。何淖炙 ⒍嘈形淖炙?、圖片水印、文字&圖片水印,文中通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-05-05
前端實(shí)現(xiàn)word文檔預(yù)覽和內(nèi)容提取的詳細(xì)過程
在前端直接讀取并原樣展示W(wǎng)ord文檔是一個(gè)相對復(fù)雜的任務(wù),因?yàn)閃ord文檔的格式(如.doc或.docx)與Web技術(shù)棧使用的格式(HTML、CSS)不兼容,下面這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)word文檔預(yù)覽和內(nèi)容提取的詳細(xì)過程,需要的朋友可以參考下2024-05-05
JavaScript 異步方法隊(duì)列鏈實(shí)現(xiàn)代碼分析
在javascript中,方法的鏈?zhǔn)秸{(diào)用很流行,使用jQuery的朋友對此一定深有體會(huì)。2010-06-06
JavaScript 動(dòng)態(tài)加載腳本和樣式的方法
這篇文章主要介紹了JavaScript 動(dòng)態(tài)加載腳本和樣式的方法,需要的朋友可以參考下2015-04-04

