如何将char转换为其键码?
如何将字符转换为其各自的键码?
例如:
-
a
到65
-
b
到66
-
c
到67
-
d
到68
您可以使用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”? 不同的浏览器在keyup
和keydown
事件中具有不同的keyCode
值,这些值不一定对应于相应字符的ASCII码。 对于字母数字键, keypress
事件将通过charCode
或which
属性为您提供大多数浏览器中的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。