从按键事件中读取字符

时间:2015-05-20 08:46:12

标签: jquery char keypress keydown

我正在尝试用jquery创建一个if语句来检查是否按下了'abc'字符。 我希望用正则表达式来做这个,而不是像这样检查每个键的键盘代码/ ascii char:

$('#main-field').on('keypress, keydown', function(event) {
    if ((event.which != 37 && (event.which != 39)...) {
        code here
    }
}

我知道 event.which 为每个字符提供键盘代码,但是如何到达char本身,按下它来检查它是否是带有reg exp的'abc'字符? 感谢

2 个答案:

答案 0 :(得分:2)

您可以使用String.fromCharCode( 65 )获取角色(a-z)。 这是一个静态方法,它将unicode数字转换为键盘布局上的相应字符。

var chars = '';
$('#main-field').on('keypress, keydown', function(event) {
    var character = String.fromCharCode(event.keyCode).toLowerCase();
    chars += character;
    if (chars == 'abc') {
        alert('abc');
    }
});

因此要检查用户是否输入了' abc'按此顺序,您可以将character附加到chars字符串,然后将其与“abc'

进行比较

这是fiddle。 请注意,例如,Enter键将返回一个空字符串,因此您可能需要考虑回退。

答案 1 :(得分:1)

您要查找的密码代码为6590,相当于az。然后,您可以检查事件的键码是否在该范围之间。

另请注意,您不需要在on调用中以逗号分隔事件名称。试试这个:

$('#main-field').on('keypress keydown', function(event) {
    if (event.which >= 65 && event.which <= 90) {
        // key a-z was pressed, do something here...
    }
}

您可以找到可用密钥代码here的列表。