我需要检测刚刚按下的键是可打印键,如字符、可能带有重音符号、数字、空格、标点符号等,还是不可打印键,如 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">
除此之外,您还可以检测列表中的任何其他键,例如 Enter
、Delete
、Backspace
、Tab
等
这种方法更加可靠,因为与 event.which
不同,event.key
已经标准化。
关于javascript - 检测可打印键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194163/