2012-04-12 15 views
-2

你好,我是使用JavaScript來驗證領域在JavaScript中沒有驗證特殊字符「_」

我檢查特殊字符..我實現驗證所有的特殊字符,除了_下劃線的代碼..

<script type="text/javascript" language="javascript"> 
function validateForm() 
{ 
    var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?_"; 

    for (var i = 0; i < document.reg_form.txtusername.value.length; i++) 
     { 
      if (iChars.indexOf(document.reg_form.txtusername.value.charAt(i)) != -1) 
       { 
        alert ("Special Characters are not allowed."); 
        return false; 
         } 
     } 
    return true; 
} 
</script> 

此申請

<input name="txtusername" type="text" id="txtusername" maxlength="10" style="background-color:#CCC" /> 

,但它不是驗證下劃線

+4

你明白的代碼在所有...? – 2012-04-12 15:08:17

+0

是的我做..我試圖把下劃線在iChars ..但它不驗證下劃線 – maham 2012-04-12 15:15:27

回答

0

字符可以作爲在字符串數組(其中,如果你想想看,它是)來解決。既然你正在循環字符串char-per-char,就像你用數組一樣,爲什麼你的邏輯不一致呢?

if (iChars.indexOf(document.reg_form.firstname.value[i]) !== -1) 
{ 
    alert('Foobar'); 
    return false; 
} 

這應該工作...另外:有沒有真正的需要逃脫單引號,因爲ICHAR字符串由雙引號分隔...如果一切都失敗了,你可能會想嘗試省略反斜槓也是。雖然我不認爲這是什麼導致了問題

據工作:here

+0

我只是實現你的和同樣的問題,下劃線:( – maham 2012-04-12 15:37:28

+0

添加到jsfiddle的鏈接,它的工作正常 – 2012-04-12 15:47:19

+0

是它的工作現在.. thnxx奧爾特@Elias範Ootegem :) – maham 2012-04-12 15:55:53

2

把它推入你的iChars變量是否沒有意義,這顯然是你的「黑名單」?在串

var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?_"; 
+0

我試過這種方式..但它不驗證@ karim79 – maham 2012-04-12 15:13:35

+0

@maham它必須工作。你保存了文件,上傳了它,並確保你的網頁的最新版本正在提供? – 2012-04-12 15:14:55

+0

我已更新代碼.. plz檢查爲什麼它不驗證下劃線 – maham 2012-04-12 15:24:17

1
var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?_"; 

     for (var i = 0; i < document.reg_form.firstname.value.length; i++) 
     { 
      if (iChars.indexOf(document.reg_form.firstname.value.charAt(i)) != -1) 
       { 
        alert ("Special Characters are not allowed"); 
        return false; 
       } 
     } 
+0

我把最後一個下劃線,但它沒有驗證:(@blasteralfred – maham 2012-04-12 15:14:28

+0

這應該工作..你可以告訴我們完整的代碼?? – 2012-04-12 15:16:34

+0

我已編輯代碼.. plz檢查代碼 – maham 2012-04-12 15:24:41