2016-01-17 53 views
-4

我試圖做一個密碼驗證,而不使用正則表達式,所以只有JavaScript沒有模式或正則表達式。該格式必須包含1個大寫字母,1個個小寫字母,1個數字和1種特殊character.So格式必須是這樣的:沒有使用正則表達式的密碼驗證

aaaa111 - >格式無效

AaAa111 - >格式無效

一@ Ba213 - >有效的格式

編輯:IM很抱歉,我不知道,正則表達式包括在JavaScript .. IAM嘗試這種驗證,但沒有工作

var hasBigLetter = false; 
    var hasSmallLetter = false; 
    var hasNumber  = false; 
    var hasSpecialCaseLetter  = false; 
    for (var i = 0; i < pass.length; i++) { 
     var charCode = pass.charCodeAt(i); 
     if(charCode > 47 && charCode < 58) 
     hasNumber = true; 
     if(charCode > 64 && charCode < 91) 
     hasBigLetter = true; 
     if(charCode > 96 && charCode < 123) 
     hasSmallLetter = true; 
     if(charCode > 32 && charCode < 48) 
     hasSpecialCaseLetter = true; 


    } 
if(pass == hasBigLetter && hasSmallLetter && hasNumber && hasSpecialCaseLetter) 
    { 
     alert("incorrect password pattern"); 
    } 

HTML:

<label> 
     Password : 
      <div> 
      <input type="password" placeholder="Input Password" id="pass" name="pass" > 
      </div> 
    </label> 
<input type="button" value="Submit" id="submit" onClick="validate()"> 
    </form> 

+3

那麼...你試過了嗎? –

+3

爲什麼你不使用正則表達式? –

+0

你知道如何測試一個字母是否大寫?是的?所以有什麼問題 ? –

回答

-1

正如你現在普遍使用正則表達式,我適應基於這個帖子https://stackoverflow.com/a/16707675/4339170解決方案:

function validate() { 
 
    var p = document.getElementById('pass').value 
 
    var errors = [] 
 

 
    //if (p.length < 8) { 
 
    // errors.push("Your password must be at least 8 characters") 
 
    //} 
 
    if (p.search(/[a-z]/) < 0) { 
 
    errors.push("Your password must contain at least one lowercase letter.") 
 
    } 
 
    if (p.search(/[A-Z]/) < 0) { 
 
    errors.push("Your password must contain at least one uppercase letter.") 
 
    } 
 
    if (p.search(/[0-9]/) < 0) { 
 
    errors.push("Your password must contain at least one digit.") 
 
    } 
 
    if(p.search(/[\!\@\#\$\%\^\&\*\(\)\_\+\.\,\;\:\-]/) < 0) { 
 
    errors.push("Your password must contain at least one special character.") 
 
    } 
 
    
 
    if (errors.length > 0) { 
 
    document.getElementById("errors").innerHTML = errors.join("<br>") 
 
    return false; 
 
    } 
 
    return true; 
 
}
<label> 
 
    Password : 
 
    <div> 
 
    <input type="password" placeholder="Input Password" id="pass" name="pass"> 
 
    </div> 
 
</label> 
 
<input type="button" value="Submit" id="submit" onClick="validate()"> 
 
<div id="errors"></div>

+0

oh waow tyvm你是天賜之物 –