2016-11-10 62 views
0

我在ASP.NET中有一個文本字段,我只想在該字段中只允許字母數字和正斜槓(/)鍵。我想下面的代碼,只允許在文本框中使用字母,數字和正斜槓的JQuery

function jsCheckInput(e) { 
    var evt = (e) ? e : window.event; 
    var key = (evt.keyCode) ? evt.keyCode : evt.which; 
    if (key != null) { 
     key = parseInt(key, 10); 
     if (key < 47 || (key > 57 && key < 65) || (key > 90 && key < 97) || key > 122) { 
      if (!jsIsUserFriendlyChar(key)) { 
       return false; 
      } 
     } 
     else { 
      if (evt.shiftKey) { 
       return true; 
      } 
     } 
    } 
    return true; 
} 

function jsIsUserFriendlyChar(val) { 
    // Backspace, Tab, Enter, Insert, and Delete 
    if (val == 8 || val == 9 || val == 13 || val == 45 || val == 46) { 
     return true; 
    } 
    // Ctrl, Alt, CapsLock, Home, End, and Arrows 
    if ((val > 16 && val < 21) || (val > 34 && val < 41)) { 
     return true; 
    } 
    return false; 
} 

在Web窗體頁我加入類似下面,

<asp:TextBox ID="text_value" CssClass="textbox" onkeydown="return jsCheckInput(event);" runat="server"></asp:TextBox> 

在這裏,我能夠進入字母和數字,但我不能夠進入價值/。我已經啓用了shift鍵,所以我可以給shift + ?輸入正斜槓。另外一個問題是,當我按shift +任意數字鍵時,像! @ # $ %^& * () ...那樣的特殊字符也會進入tet場。我在這裏做錯了什麼?

+0

使用正則表達式 – Dherya

+0

這可能幫助:http://stackoverflow.com/questions/8661254/javascript-only-allow-alphanumeric-and-hyphen-value-in-text-field – Rajesh

+0

這個回答可以幫助你:HTTP ://stackoverflow.com/questions/469357/html-text-input-allow-only-numeric-input – Tecnologer

回答

0

SOLUTION

終於找到了如下的解決方案,

function jsCheckInput(e, t) { 
    try { 
     if (window.event) { 
      var charCode = window.event.keyCode; 
     } 
     else if (e) { 
      var charCode = e.which; 
     } 
     else { return true; } 
     if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || (charCode > 46 && charCode < 58)) 
      return true; 
     else if (jsIsUserFriendlyChar(charCode)) 
      return true; 
     else 
      return false; 
    } 
    catch (err) { 
     alert(err.Description); 
    } 
} 

此代碼工作完美!

0

如果您想使用正則表達式。如果你不

const regex = /^[a-z0-9\/]+$/gi; 
const str = `asdasdas/asdfaASDASDA`; //test string 

if(regex.test(str)){ 
    console.log('Allowed'+str); 
    } 

測試here

0

你不需要Shift鍵,輸入斜線忽略。正斜槓(/)的關鍵代碼是191.只需在if條件中添加它即可。

function jsCheckInput(e) { 
    var evt = (e) ? e : window.event; 
    var key = (evt.keyCode) ? evt.keyCode : evt.which; 
    if (key != null) { 
     key = parseInt(key, 10); 
     if (key < 47 || (key > 57 && key < 65) || (key > 90 && key < 97) || key > 122 || key != 191) { 
      if (!jsIsUserFriendlyChar(key)) { 
       return false; 
      } 
     } 
    } 
    return true; 
} 
相關問題