2012-04-20 39 views
1

我使用此代碼,工作正常,但與此代碼的問題是,它沒有優化,例如,如果我想添加更多的字符,然後我將結束向上具有IFS ....如何使此代碼更有用(防止在textarea中的特殊字符)

if (keychar == "#" || keychar == "!" || keychar == "$" ..........) 

是有辦法優化這個代碼?這意味着減少IFS(如果我需要添加更多的特殊字符,以防止)

<script language="javascript" type="text/javascript"> 
     function check(e) { 
      var keynum 
      var keychar 
      var numcheck 
      // For Internet Explorer 
      if (window.event) { 
       keynum = e.keyCode 
      } 
      // For Netscape/Firefox/Opera 
      else if (e.which) { 
       keynum = e.which 
      } 
      keychar = String.fromCharCode(keynum) 
      //List of special characters you want to restrict 
      if (keychar == "'" || keychar == "a") { 

       return false; 
      } 
      else { 
       return true; 
      } 
     } 
</script> 
+1

只是爲了確保以限制文本框的特殊字符;你確實知道你還需要檢查服務器,對吧? – 2012-04-20 03:11:52

回答

4
switch(keychar) { 
    case "#": 
    case "!": 
    case "$": 
     ... 
    default: 
     ... 
} 

OR

if(keychar.match(/[#!$]/)) 
+1

+1。一個正則表達式的完美例子 – elclanrs 2012-04-20 03:13:20

1

定義的字符列表中的字符串來限制,並搜索進入了關鍵使用indexOf

keychar = String.fromCharCode(keynum); 
return "'a#!$".indexOf(keychar) == -1; 
+0

你知道特殊字符列表的列表嗎? – 2012-04-20 03:32:56

+0

取決於您的業務需求。我不知道你的申請要求。 – mellamokb 2012-04-20 03:33:49

0
function check(e) { 
    var event = e || window.event; 
    var keychar = String.fromCharCode(event.keyCode); 
    switch(keychar) { 
     case 'a': 
     case 'b': 
     case 'c': 
     /* 
     * case 'd': 
     * case 'e': 
     * ... 
     */ 
      return false; 
     default: 
      return true; 
    } 

}

0

如何使用jQuery

$("#txtUploadFrequency").keypress(function (e) { 
    if (String.fromCharCode(e.keyCode).match(/[^0-9A-Za-z]/g)) return false; 
});`enter code here`