从按键事件中读取字符
Read character from keypress event
我正在尝试用 jquery 做一个 if 语句来检查是否按下了 'abc' 字符。
我希望用正则表达式来做到这一点,而不是像这样检查每个键的键盘 code/ascii 字符:
$('#main-field').on('keypress, keydown', function(event) {
if ((event.which != 37 && (event.which != 39)...) {
code here
}
}
我知道 event.which 为您提供了每个字符的键盘代码,但我如何到达按下的字符本身以检查它是否是 'abc' 带有 reg exp 的字符?
谢谢
您要查找的键码是 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。
您可以使用 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 键将 return 一个空字符串,因此您可能需要考虑一个回退。
我正在尝试用 jquery 做一个 if 语句来检查是否按下了 'abc' 字符。 我希望用正则表达式来做到这一点,而不是像这样检查每个键的键盘 code/ascii 字符:
$('#main-field').on('keypress, keydown', function(event) {
if ((event.which != 37 && (event.which != 39)...) {
code here
}
}
我知道 event.which 为您提供了每个字符的键盘代码,但我如何到达按下的字符本身以检查它是否是 'abc' 带有 reg exp 的字符? 谢谢
您要查找的键码是 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。
您可以使用 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 键将 return 一个空字符串,因此您可能需要考虑一个回退。