String.charCodeAt(index)和JavaScript密钥码的返回值有什么不同?有没有办法在两者之间进行转换?
例如:
console.log('.'.charCodeAt(0)); // prints 46 on Mac/Chrome但是keyCode代表“.”是190。
发布于 2013-01-24 19:04:52
String.charCodeAt(索引)设计为在指定位置返回字符串字符的ascii值。
keyCode是按下键盘键的值的浏览器实现。不幸的是,它也没有在所有浏览器上标准化。
编辑:
String.fromCharCode(unicodeValue);
这将将unicode值(如keyCode )转换为ascii值。请注意,并非所有的keyCode值都将转换为适当的ascii值(因为没有这样的值),例如{ delete、向上、向下、左、右、主页、插入、页面向上、页面向下}
例如:按Delete键返回46的keyCode,如果执行alert(String.fromCharCode(46));,您将看到它输出一个句点,因为46是句点的ascii值。
发布于 2013-01-24 19:27:16
与onkeydown和onkeyup不同,onkeypress事件实际上返回一个charCode属性,该属性可以使用String.fromCharCode转换为其字符表示形式。
input.onkeypress = function(e) {
var char = String.fromCharCode(e.charCode);
}还请查看此链接,以获得关于不同浏览器和平台上的keyCodes / charCodes的一些良好研究。
http://unixpapa.com/js/key.html
https://stackoverflow.com/questions/14508733
复制相似问题