ASCII值的按键

Keystroke to ASCII Value

本文关键字:ASCII      更新时间:2023-09-30

我想击键并获得它的ASCII表示。这包括按下SHIFT键时,即

  • "shift="返回43
  • "a"返回97
  • "shift a"返回65

有没有一种方法可以在不写很多代码的情况下做到这一点?

编辑:

document.onkeypress = function () {
  console.log(event.which);
}

在非常更少的代码中,您可以执行:

document.onkeypress = function () {
  console.log(event.which);
}

运行以上代码后,请检查您的控制台。

ps:以上代码的权重为55个字符;)

更新:应该是onkeypress,而不是onkeydown。谢谢提莫。

以下是7位ascii(又名us ascii)中大小写"a"的十进制编码。

char    decimal    hexidecimal
A       65         41  
a       97         61

http://www.asciitable.com/

事情是这样的。keyCode!=腹水(必然)。记住许多不同的键盘、语言等。例如,我可以在德国物理键盘上选择(在软件中)美英布局。这是在操作系统级别。

在浏览器中,除非另有规定,否则表单字符编码默认为页面编码(例如utf-8、iso-8859-1等)。

您可以使用以下片段来了解按键事件中的内容。

document.onkeypress = function (e) {
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    console.log('charCode: ' + charCode + 
                ' keyIdentifier: ' + e.keyIdentifier + 
                ' which: ' + e.which + 
                ' keyCode: ' + e.keyCode + 
                ' shiftKey: ' + e.shiftKey + 
                ' ctrlKey: ' + e.ctrlKey + 
                ' altKey: ' + e.altKey + 
                ' metaKey: ' + e.metaKey);
}

以下答案解释了使用按键事件通常是获得字符代码而不是键代码

JavaScript KeyCode与CharCode

果不其然,使用onkeypress而不是onkeydownonkeyup可以得到"A"answers"A"的65和97。您只需要更新javascript,就可以忽略不感兴趣的键(如shift等)中的事件。

有趣的实验是玩页面编码和7位ascii范围之外的字符,看看这种方法在获得实际字符编码方面的效果如何。