2009-09-16 20 views
28

如何将字符转换为相应的键码?如何将字符转换为其键码?

例如:

  • a65
  • b66
  • c67
  • d68
+0

请参阅[http://stackoverflow.com/questions/302122/jquery-event-keypress-which-key-was-pressed](http://stackoverflow.com/questions/302122/jquery-event-keypress-哪些 - 键被按下) – goldenratio 2009-09-16 04:50:38

+0

请参阅[完整的JavaScript键列表](http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes) – 2013-05-01 01:12:01

回答

29

可以使用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); 
 
}
<input type="text" id="character" size="15"> 
 
<input type="button" value="Show Key Code" onclick="showKeyCode();">

+0

我有一个字符让说' a',我需要找到'a'的相应键码。 – Santhosh 2009-09-16 04:50:19

+32

我不确定这是否真的回答了这个问题 - 这取决于你的意思是“keycode”。此功能为您提供字符代码,而不是密钥代码,这可能不是同一件事。 – 2009-09-23 14:52:23

+5

在原始问题中必须更改keycode这个术语,否则这是错误的答案。 Keycode是你从e.which得到的 - 当一个键被按下时。 – 2014-06-22 18:56:54

2

查找像this one一键码/ ASCII图表,并把它放到一个数组,使得数组[ '炭'] =密钥号码。这很乏味,但代码会执行得非常快。

13

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

更新2015年9月

正如在评论中指出,由Jan,keyCode最终会由上级key属性所取代。但是,目前没有太多的浏览器支持。

+0

@Jan:根据[MDN](https://developer.mozilla。org/en-US/docs/Web/API/KeyboardEvent),'char'已被删除。 'key'远远好于'keyCode',但还没有得到广泛的支持。对于中短期来说,'keyCode'和'which'都在我们身边。 – 2015-09-09 11:18:39

+0

不错。你的方式应该是被接受的答案。接受的答案根本不回答这个问题。它回答了一个*不同的问题,但不是所问的问题 – Jan 2015-09-09 17:40:22

+1

“优越关键属性”?!?我没有看到如何使用像“”ArrowDown“”或“Enter”这样的字符串应该比使用ASCII Integer值更好,或者不推荐'keyCode'和'which'对任何人都有帮助。如果没有至少一个实用的,标准的方法来将''Enter''转换为'13'并返回,这没有任何意义! – 2017-08-24 11:20:12

相关问题