Javascript String.charCodeAt(索引)和keyCodes
可能重复:Javascript String.charCodeAt(索引)和keyCodes,javascript,Javascript,可能重复: String.charCodeAt(index)的返回值与JavaScript键代码之间有什么区别?有没有办法在两者之间进行转换 例如: console.log('.'.charCodeAt(0)); // prints 46 on Mac/Chrome 但是“.”的键码是190。字符串。charCodeAt(索引)用于返回指定位置字符串字符的ascii值 keyCode是所按键盘键的值的浏览器实现。不幸的是,它也不是所有浏览器都标准化的 编辑: String.fromChar
String.charCodeAt(index)
的返回值与JavaScript键代码之间有什么区别?有没有办法在两者之间进行转换
例如:
console.log('.'.charCodeAt(0)); // prints 46 on Mac/Chrome
但是“.”的键码是190。字符串。charCodeAt(索引)用于返回指定位置字符串字符的ascii值
keyCode是所按键盘键的值的浏览器实现。不幸的是,它也不是所有浏览器都标准化的
编辑:
String.fromCharCode(unicodeValue)代码>
这将把unicode值(如keyCode)转换为ascii值。请注意,并非所有的keyCode值都将转换为适当的ascii值(因为没有一个),例如{delete、up、down、left、right、home、insert、page up、page down}
示例:如果执行alert(String.fromCharCode(46)),则按Delete键返回键代码46
您将看到它输出一个句点,因为46是一个句点的ascii值。与onkeydown和onkeydup不同,onkeypress
事件实际上返回一个charCode
属性,可以使用字符串将其转换为字符表示形式。fromCharCode
input.onkeypress = function(e) {
var char = String.fromCharCode(e.charCode);
}
还可以查看此链接,了解有关不同浏览器和平台上的keyCodes/charcode的一些好的研究
第一个是ASCII表中的位置,第二个是键盘键代码值。我不会说这是重复的,因为链接的问题没有询问如何在两者之间转换。更具体地说,如果我有一个字符,如何在任何给定的浏览器中获取其keycode?是否有一个函数可以从keycode转换为charCode,反之亦然?jQuery实现了一个名为event的keycode版本。它将添加到回调方法的事件对象中。它规范化这些键代码,以便它们在jQuery支持的所有浏览器和版本中保持一致。这是最困难的部分。。。然后,您只需要编写一个映射函数,将其映射到事件上正确的ascii值.api文档。AndrewEisenberg为您做了一些挖掘工作。阅读对我的答案的编辑。keyCodes不是unicode值,并且fromCharCode
不会转换为ascii(这将更加有限),而是转换为字符串。