JavaScript實現(xiàn)密碼強度實時驗證
JavaScript實現(xiàn)密碼強度實時驗證,供大家參考,具體內(nèi)容如下
在網(wǎng)絡(luò)服務(wù)中,為了保證用戶的私密信息足夠安全,會要求用戶輸入具有一定安全級別的密碼,這樣可以更好的防止他人盜用。比如在注冊一些游戲賬號時,如果輸入純數(shù)字或純英文字符低于6位,就會提示密碼強度太低,請重新輸入。一些密碼強度驗證的方法都是計算字符的類型,然后分類加權(quán)累算。權(quán)重越高,相應(yīng)的強度也就越高。
具體的寫法及實現(xiàn)方式有很多種,本文只介紹其中一種方案
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>密碼強度實時驗證</title>
</head>
<body>
<h2>密碼強度實時驗證</h2>
<input id="passwordStrength" data-hint='請輸入密碼' type="password" ><span id="showStrength"></span>
<script type="text/javascript">
window.onload = function () {
function setCss(_this,cssOption){
//判斷節(jié)點類型
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
當密碼長度小于6時不符合標準
長度>=6,強度小于10,強度弱
長度>=6,長度>=10且<15,強度中
長度>=6,強度>=15,強*/
passwordStrength.onkeyup = function(){
var _color = ["red","yellow","orange","green"],
msgs = ["密碼太短","弱","中","強"],
_strength = 0,
_v= trim(passwordStrength.value)
_vL= _v.length,
i=0;
var charStrength = function(char){
//計算單個字符強度
if(char>=48 && char <=57){//數(shù)字
return 1;
}
if(char>=97 && char<=122){//小寫
return 2;
}else{
return 3; //特殊字符
}
}
if(_vL<6){//計算模式
showStrength.innerText = msgs[0];
setCss(showStrength,{
"color":_color[0]
})
}else{
for(;i<_vL;i++){
//遍歷字符
_strength+=charStrength(_v.toLocaleLowerCase().charCodeAt(i));
}
if(_strength<10){
//強度小于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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 函數(shù)惰性載入的實現(xiàn)及其優(yōu)點介紹
惰性載入表示函數(shù)執(zhí)行的分支只會在函數(shù)第一次掉用的時候執(zhí)行,在第一次調(diào)用過程中,該函數(shù)會被覆蓋為另一個按照合適方式執(zhí)行的函數(shù),這樣任何對原函數(shù)的調(diào)用就不用再經(jīng)過執(zhí)行的分支了2013-08-08
bootstrap自定義樣式之bootstrap實現(xiàn)側(cè)邊導航欄功能
bootstrap自帶的響應(yīng)式導航欄是向下滑動的,有時滿足不了個性化的需求,需要做一個類似于android drawerLayout 側(cè)滑的菜單,這就是我要實現(xiàn)的bootstrap自定義側(cè)滑菜單。接下來通過本文給大家介紹bootstrap實現(xiàn)側(cè)邊導航欄功能,感興趣的朋友一起看看吧2018-09-09

