我正在尝试用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'字符? 感谢
答案 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)
您要查找的密码代码为65
到90
,相当于a
到z
。然后,您可以检查事件的键码是否在该范围之间。
另请注意,您不需要在on
调用中以逗号分隔事件名称。试试这个:
$('#main-field').on('keypress keydown', function(event) {
if (event.which >= 65 && event.which <= 90) {
// key a-z was pressed, do something here...
}
}
您可以找到可用密钥代码here的列表。