javascript - 检测可打印键

标签 javascript keyboard

我需要检测刚刚按下的键是可打印键,如字符、可能带有重音符号、数字、空格、标点符号等,还是不可打印键,如 ENTER、TAB或删除。

除了列出所有不可打印的 key 并希望不要忘记一些之外,在 Javascript 中是否有可靠的方法来执行此操作?

最佳答案

幸运的是,这项任务在现代浏览器中要容易得多。您现在可以使用 KeyboardEvent.key通过长度检测可打印 key 。

test.onkeydown = e => {
  let isPrintableKey = e.key.length === 1;
  alert(`Key '${e.key}' is printable: ${isPrintableKey}`);
}
<input id="test">

除此之外,您还可以检测列表中的任何其他键,例如 EnterDeleteBackspaceTab

这种方法更加可靠,因为与 event.which 不同,event.key 已经标准化。

关于javascript - 检测可打印键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194163/

相关文章:

javascript - 在 AngularJS 中加载 JSON 数据之前出现 "loading"或 "wait"消息

javascript - 如何处理javascript中的竞争条件?

mobile - 微软楔形移动键盘

java - 如何处理/决定在 KEY_PRESSED 和 KEY_RELEASED 之间输入关键字符的文本字段的速度?

ios - 键盘在 Swift 4 中与 UITextField 重叠

javascript - 使用 contenteditable div 时隐藏移动设备上的软键盘

javascript - 'exit' - 在 node.js 集群中从 master 杀死时工作进程中的事件

javascript - 尝试根据 FieldArray React JS 内部的条件渲染字段

javascript - 如何判断是否是我的客户端访问我的服务器?

c++ - 在小部件中获取 QKeyEvents 的好方法是什么?