正则表达式禁用转义键

时间:2015-07-07 15:30:49

标签: javascript regex

我使用以下代码尝试,只允许字母,数字,退格键,空格,短划线和&符号。我还想“禁用”所有其他键,包括功能键(F1,F2等)。我正在运行的问题是正则表达式也禁用了转义键。

不使用正则表达式可以实现同样的目的吗?

此功能是实时搜索功能的一部分,如果按下“禁止”键,我不希望发送ajax请求。

searchBox.keyup(function (e) { // LIVE SEARCH FUNCTION

        var functionKeysPressed = [112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123].indexOf(e.which) > -1;

        if (String.fromCharCode(e.which).match(/^[\w\x08]$/) && !functionKeysPressed) {

            // code to execute if key is allowed

        }

});

1 个答案:

答案 0 :(得分:0)

您可以在没有正则表达式的情况下执行此操作。简单地参考e.keyCode而不是e.which

if (e.keyCode == 27){
    //Esc Key pressed
}

onKeyUp keycode返回触发事件的密钥的Unicode密钥代码。

您可以在此处找到密钥代码: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

要排除多个密钥,您只需创建一个数组并检查密钥代码是否已列入黑名单:

var blacklisted = [1,2,3,4,5];
if (blacklisted.indexOf(e.keyCode) == -1){
   //do something
}