2014-09-04 56 views
-1

想要通過javascript代碼應用驗證。 這裏「fpass」是TextBox1中的id使用數組的密碼的java腳本驗證

var spcl=['@','$','%','&']; 
var i; 
var len=spcl.length; 



    for(i=0;i<len;i++){ 
    document.write(spcl[i] + " "); 
    } 
     if("%" in spcl[i]){ 
     document.write("good"); 
     }else{ 
     document.write("no special characters"); 
     } 
+1

而且你的問題是什麼? – 2014-09-04 12:00:37

+0

你可以用正則表達式來嘗試。 – 2014-09-04 12:01:25

+0

http://codereview.stackexchange.com/questions/40944/verifying-password-strength-using-javascript – ashokhein 2014-09-04 12:22:49

回答

2

你的if語句是循環之外,所以解決它:

for(i=0;i<len;i++){ 
    document.write(spcl[i] + " "); 
    if("%" in spcl[i]){ 
     document.write("good"); 
    }else{ 
     document.write("no special characters"); 
    } 
} 
+0

請閱讀['in'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in)... – Teemu 2014-09-04 12:06:13

+0

但是如何驗證使用數組的特殊字符的密碼? – 2014-09-04 12:07:33

+0

你是什麼意思,你的意思是在符合條件時跳出循環 – meda 2014-09-04 12:15:18

0

我不知道,但我猜你wan't說密碼字段的輸入文本在你的「spcl」 - 數組中有任何這些字符。所以,我會做這樣的:

更新,以符合您發表評論:

var spcl=['@','$','%','&']; 
var count = 0; 

function validate(s) { 
    document.getElementById('validationtext').innerHTML = check(s); 
    count = 0; 
} 

function check(s) { 
    for(var i = 0; i<s.length; i++) { 
     if (spcl.indexOf(s[i]) > -1) { 
      count++; 
      if (count > 1) return "good"; 
     } 
    } 
    return "no special characters"; 
} 

Demo

+0

我想驗證密碼字段而不使用正則表達式。 輸入字段必須包含2個特殊字符 – 2014-09-04 12:43:11

+0

查看更新的代碼。現在它應該爲你工作。 – Werner 2014-09-04 13:02:16

+0

非常感謝:) – 2014-09-05 09:06:11