如何将char转换为其键码?

如何将字符转换为其各自的键码?

例如:

  • a65
  • b66
  • c67
  • d68

您可以使用charCodeAt函数来实现此目的。

工作范例:

 function showKeyCode () { var character = document.getElementById("character").value.substring(0, 1); var code = document.getElementById("character").value.charCodeAt(0); var msg = "The Key Code for the \"" + character + "\" character is " + code + "."; alert(msg); } 
   

你是什​​么意思“keyCode”? 不同的浏览器在keyupkeydown事件中具有不同的keyCode值,这些值不一定对应于相应字符的ASCII码。 对于字母数字键, keypress事件将通过charCodewhich属性为您提供大多数浏览器中的ASCII代码。 这个页面很有用。

2015年9月更新

正如Jan在评论中指出的那样, keyCode最终将被高级key属性所取代。 但是,目前还没有太多的浏览器支持。

找到像这样的keycode / ascii图表并将其放入一个数组,使得array [‘char’] = keycode。 这很乏味,但代码执行速度非常快。

正如评论中所指出的那样: 接受的答案是不正确的 ,因为它给出了字符代码而不是keyCode,它们可以是不同的,例如'a'.charCodeAt(0) == 97而正确的keyCode是65

为了仅转换[a-zA-Z]或数字[0-9]中标准字符,可以使用下面的代码。

但是,对于任何特殊键,都无法正常工作 .Ö#或者我没有找到适合他们的好方法。 作为一种解决方法,可以使用像http://keycode.info/这样的网站( onkeydown捕获onkeydown事件并读取event.keyCode属性)。

 function convertToKeyCode(target) { var keyCode = target.value.toUpperCase().charCodeAt(0); document.getElementById("keyCodeSpan").innerHTML = keyCode; } 
  Keycode:  

当我偶然发现这个问题时,我正在寻找这个。 我不认为明确的答案是正确的答案。 对于简单的字母,A-Za-z,我使用以下内容:

 function getKeyCode(char) { var keyCode = char.charCodeAt(0); if(keyCode > 90) { // 90 is keyCode for 'z' return keyCode - 32; } return keyCode; } 

请注意,这仅适用于字符AZ和az。