0

下面的代码接受一个字符并使用 keycode(String.fromCharCode) 打印字符。当您输入特殊字符(如.or )时会出现问题?

function logChar(e){
  var keyCode = e.which || e.keyCode;
  var char = String.fromCharCode(keyCode);
  console.log(char)  
}
<input type="text" onkeydown="logChar(event)" />

有人可以解释为什么它返回不同的值以及如何获得相同的值吗?

提前致谢!

4

1 回答 1

3

那是因为keyCodecharCode是不同的。String.fromCharCode假设输入是 unicode(所以 A 是 65),并且对于字母和数字键,它们将匹配......有点。您会注意到作为 keyCode 的 'a' 和 'A' 都是 65,但 'a' 是 97!因此 keyCode 只是您按下的键盘上实际键的标识符,而不是 unicode。

这就是小键盘 0-9 也给出不同代码的原因。如果要映射按键,请使用这样的站点。但请注意,您将永远不会再得到确切的字符。

于 2016-01-13T14:07:45.890 回答