JavaScript密碼強度等級詳解

admin發表於2018-09-11

本章節分享一段程式碼例項,它實現了當輸入密碼的時候,能夠提示密碼強度等級效果。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
form{
  width: 500px;
  height:300px;
  margin:0 auto;
}
h3{
  text-align: center;
  color: #323232;
}
ul{
  list-style: none;
  overflow: hidden;
  width: 100%;
}
ul li{
  width: 32%;
  float: left;
  text-align: center;
  border:1px solid #eee;
}
ul li:nth-child(2){
  border-left:none;
  border-right:none;
}
div{
  line-height: 40px;
  text-align: center;
  margin-top: 50px;
  margin-bottom: 50px;
}
div input{
  width: 300px;
  height:30px;
  outline: none;
}
.danger{
  background-color: #fd1b56;
 }
.yellow{
  background-color: #ff8957;
}
.green{
  background-color: #2FE30E;
}
</style>
<script>
window.onload=function(){
  var password=document.getElementById("password");
  var objLow = document.getElementById("danger");
  var objMed = document.getElementById("yellow");
  var objHi = document.getElementById("green");
  function keyUp() {
    var gg_pwd = password.value;
    if (gg_pwd.length < 6) {
      objHi.className="";
      objMed.className="";
      objLow.className="danger";
    } else {
      var p1 = (gg_pwd.search(/[a-zA-Z]/) != -1) ? 1 : 0;
      var p2 = (gg_pwd.search(/[0-9]/) != -1) ? 1 : 0;
      var p3 = (gg_pwd.search(/[A-Z]/) != -1) ? 1 : 0;
      var pa = p1 + p2 + p3;
      if (pa == 1) {
        objHi.className="";
        objMed.className="";
        objLow.className="danger";
      } else if (pa == 2) {
        objHi.className="";
        objMed.className="yellow";
      } else if (pa == 3) {
        objHi.className="green";
      }
    }
  }
  password.onkeyup=function(){
    keyUp()
  }
}
</script>
</head>
<body>
<form>
  <div>
    <lable for="password">密碼</lable>
    <input type="password" id="password" name="password" placeholder="輸入密碼驗證密碼強度"/>
  </div>
  <ul class="color">
    <li id="danger">弱</li>
    <li id="yellow">中</li>
    <li id="green">強</li>
  </ul>
</form>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).window.onload=function(){},當文件內容完全載入完畢再去執行函式中的程式碼。

(2).var password=document.getElementById("password");

var objLow = document.getElementById("danger");

var objMed = document.getElementById("yellow");

var objHi = document.getElementById("green")

獲取對應id的元素物件。

(3).function keyUp() {},作為onkeyup事件處理函式。

(4).var gg_pwd = password.value,獲取密碼值。

(5).if (gg_pwd.length < 6) {

  objHi.className="";

  objMed.className="";

  objLow.className="danger";

},如果密碼長度小於6,那麼就顯示危險提示。

(6).var p1 = (gg_pwd.search(/[a-zA-Z]/) != -1) ? 1 : 0,判斷密碼中是否包含字元沒如果有,則p1的值為1,否則為0。

(7).var p2 = (gg_pwd.search(/[0-9]/) != -1) ? 1 : 0,如果密碼中包含數字,那麼p2的值為1,否則為0。

(8).var p3 = (gg_pwd.search(/[A-Z]/) != -1) ? 1 : 0,如果密碼中包含大寫字母,那麼p3的值為1,否則為0。

(9).var pa = p1 + p2 + p3,進行求和運算。

(10).if (pa == 1) {

  objHi.className="";

  objMed.className="";

  objLow.className="danger";

} else if (pa == 2) {

  objHi.className="";

  objMed.className="yellow";

} else if (pa == 3) {

  objHi.className="green";

},根據pa的值來設定強度提示級別。

二.相關閱讀:

(1).className參閱JavaScript className一章節。

(2).search()參閱正規表示式search()函式一章節。

(3).onkeyup事件參閱JavaScript keyup事件一章節。

相關文章