2014-02-28 43 views
2

我已經封鎖了所有ATOZ字符輸入在我的JavaScript使用正則表達式我的文本字段,但我已經封鎖整個字母,我不能在這裏執行CTRL + ÇCTRL + V, 是我的正則表達式去:如何檢測CTRL + C和CTRL + V鍵使用正則表達式按壓?

var reValidChars = /[\x08\x0D\d]/; 
iKeyCode = objEvent.charCode; 
strKey = String.fromCharCode(iKeyCode); 
if (!reValidChars.test(strKey)) { 
    return false; 
} 

你能幫我解決這個問題。 在此先感謝

+0

這是你想要什麼,我張貼在下面? – tnanoba

+1

是,,,謝謝 – preeth

+1

靠邊站「解析與正則表達式XML」。我們現在有「用正則表達式檢測複製和粘貼」。 – BoltClock

回答

8

您不能檢測鍵用RegExp的壓制,雖然你可以像以下:

document.body.addEventListener("keydown",function(e){ 
    e = e || window.event; 
    var key = e.which || e.keyCode; // keyCode detection 
    var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection 

    if (key == 86 && ctrl) { 
     console.log("Ctrl + V Pressed !"); 
    } else if (key == 67 && ctrl) { 
     console.log("Ctrl + C Pressed !"); 
    } 

},false); 

JSFiddle

0

使用paste事件採取從剪貼板粘貼時的動作。

需要注意的是用戶有獲取內容到你的文本框的很多,方法很多!

  • 打字
  • 自動完成(不火在所有瀏覽器的關鍵事件)通過鍵盤快捷鍵
  • 粘貼通過菜單
  • 粘貼
  • 將&刪除高亮文本從其他程序
  • 等。

因此,而不是捕捉的東西僅在鍵盤輸入(keyup)中,您需要將它們捕獲到實際的粘貼級別和其他事件!這意味着你可能還需要觀察任何或所有這些事件,根據您的情況:

相關問題