String.charCodeAt(index)
的返回值与JavaScript密钥代码之间有什么区别?有没有办法在两者之间进行转换?
例如:
console.log('.'.charCodeAt(0)); // prints 46 on Mac/Chrome
但是'。'的keyCode是190。
答案 0 :(得分:2)
string.charCodeAt(index)旨在返回指定位置的字符串字符的ascii值。
keyCode是按下的键盘键值的浏览器实现。不幸的是,它在所有浏览器中都没有标准化。
修改强>
String.fromCharCode(unicodeValue);
这会将keyCode等unicode值转换为ascii值。请注意,并非所有keyCode值都将转换为适当的ascii值(因为没有一个),如{delete,up,down,left,right,home,insert,page up,page下来}
示例:按Delete键返回keyCode为46,如果执行alert(String.fromCharCode(46));
,您将看到它输出一个句点,因为46是句点的ascii值。
答案 1 :(得分:1)
与onkeydown和onkeyup不同,onkeypress
事件实际上会返回charCode
属性,可以使用String.fromCharCode
input.onkeypress = function(e) {
var char = String.fromCharCode(e.charCode);
}
另请查看此链接,了解有关不同浏览器上的keyCodes / charCodes的一些优秀研究。平台