2013-01-18 49 views
0

對於HTML輸入值,是否可以用JavaScript定義只接受拉丁字符(任何情況)和所有其他鍵(如退格,刪除,箭頭)的正則表達式鍵,還有.dot,@at? 是事件關鍵評估,而不是之後,這就是爲什麼我需要箭頭和其他鍵。JavaScript正則表達式僅允許拉丁字符和其他有用的鍵

+2

對於關鍵事件評估,最好使用關鍵代碼。這裏沒有必要用正則表達式。 – VisioN

回答

0

您可以使用類似:

的JavaScript

document.getElementById('foo').onkeydown = function (e) { 
    if (e.keyCode < 65 || e.keyCode > 90) { 
    e.preventDefault(); 
    return false; 
    } 
}; 

HTML

<textarea id="foo"></textarea> 

這將限制你只能輸入小寫字母。它應該稍微修改一下與鞋面一起工作。

JSfiddle

0

除非你提供更多的細節,我認爲正則表達式不會幫助你。

我不知道您需要使用的關鍵事件的細節,但我自己寫了一個像字典這樣的對象,在我的一個項目中運行良好,但它當然不失敗,並且很難是100%,因爲有很多鍵盤佈局和語言,以及JavaScript和瀏覽器實現中的未預先註冊的事件處理。我建議先閱讀本文,它對我有很大的幫助http://unixpapa.com/js/key.html

我的解決方法爲en-US英語鍵盤。

var Keys = { "BACKSPACE":8, "TAB":9,"ENTER":13,"SHIFT":16,"CTRL":17,"ALT":18, "PAUSEBREAK":19, "CAPSLOCK":20,"ESC":27, "SPACE":32, "PAGEUP":33, "PAGEDOWN":34, "END":35, "HOME":36, "LEFT":37, "UP":38, "RIGHT":39, "DOWN":40, "PRNTSCRN":44, "INSERT":45, "DELETE":46, "0":48, "1":49, "2":50, "3":51, "4":52, "5":53, "6":54, "7":55, "8":56, "9":57, "A":65, "B":66, "C":67, "D":68, "E":69, "F":70, "G":71, "H":72, "I":73, "J":74, "K":75, "L":76, "M":77, "N":78, "O":79, "P":80, "Q":81, "R":82, "S":83, "T":84, "U":85, "V":86, "W":87, "X":88, "Y":89, "Z":90, "WINKEY":91, "WINKEYR":92, "APPLICATION":93, "NUM0":96, "NUM1":97, "NUM2":98, "NUM3":99, "NUM4":100, "NUM5":101, "NUM6":102, "NUM7":103, "NUM8":104, "NUM9":105, "MULTIPLY":106, "ADD":107, "SUBTRACT":109, "DECIMALPOINT":110, "DIVIDE":111, "F1":112, "F2":113, "F3":114, "f4":115, "F5":116, "F6":117, "F7":118, "F8":119, "F9":120, "F10":121, "F11":122, "F12":123, "NUMLOCK":144, "SCROLLLOCK":145, "SEMICOLON":186, "EQUAL":187, "COMMA":188, "DASH":189, "PERIOD":190, "SLASH":191, "GRAVE":192, "OPENBRAKET":219, "BACKSLASH":220, "CLOSEBRAKET":221, "SINGLEQUOTE":222, "MMNEXT":176, "MMPREVIOUS":177, "MMSTOP":178, "MMPLAY":179, "MMREWIND":227, "MMFORWARD":228, "MYCOMPUTER":182, "MYCALCULATOR":183, "HELP":225, "Invalid!":0 
} 

if(event.keyCode == Keys['RIGHT']) //go right 
if(event.keyCode == Keys['LEFT']) //go left 
if(event.keyCode == Keys['ENTER']) //do something 
if(event.keyCode == Keys['ESC'] || event.keyCode == Keys['BACKSPACE']) //exit 

你提到箭頭和其他按鍵,你可以使用,如果你正在使用的密鑰綁定就像一個遊戲,避免使用改性劑像CTRL + ALT + WINKEY ALTGR應用程序選項命令他們是一團糟,有很多不一致的地方,比如Command鍵假裝成Application鍵,右鍵另一個控制鍵等,還有一些鍵盤沒有第二個alt或者ctrl。所以它是一個例外。

相關問題