String.fromCharCode问题,用于javascript中的特殊字符

时间:2016-01-13 13:46:45

标签: javascript fromcharcode

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:3)

这是因为keyCodecharCode不同。 String.fromCharCode假设输入是unicode(因此A是65),而对于字母和数字键,它们将匹配...排序。你会发现&#39; a&#39;和&#39; A&#39;作为一个keyCode都是65,但是&#39; a&#39;是97!因此,keyCode只是您按下的键盘上的实际键的标识符,并且不是unicode。

这就是为什么小键盘0-9也给出了不同的代码。如果要映射按键,请使用this之类的网站。但请注意,你永远不会再获得确切的角色了。