ASCII到键码转换器
ASCII to keycode converter
是否存在将ASCII转换为keypress
、keyup
和keydown
dom事件返回的keyCode
的JavaScript/jQuery脚本?
我想的是:
"A".toKeycode
编辑:我在问是否有人制作了一些脚本,可以将所有ASCII字符转换为正确的键代码。因此" ".toKeycode
也应该起作用。
根据我的经验,String.fromCharCode(e.keyCode)
是不可靠的。String.fromCharCode
需要unicode charcode作为参数;e.keyCode
返回javascript键代码。Javascript键代码和unicode字符代码不是一回事!特别是,数字键盘键返回的键代码与普通数字键不同(因为它们是不同的键),而大小写字母返回的键码相同(在两种情况下都按了同一个键),尽管它们具有不同的charcode。
例如,普通数字键1生成具有键代码49的事件,而数字键盘键1(打开数字锁)生成键代码97。与String.fromCharCode
一起使用,我们得到以下结果:
String.fromCharCode(49)
返回"1"String.fromCharCode(97)
返回"a"String.fromCharCode
需要unicode charcode,而不是javascript keycode。该键生成一个键代码为65的事件,与它将生成的字符的大小写无关(如果在事件中按下shift键等,也有一个修饰符)。字符"a"的unicode代码为61,而字符"a"的代码为41(例如,http://www.utf8-chartable.de)。然而,这些都是十六进制值,转换为十进制会为"a"提供65的charcode,为"a"提供97的charcode。1这与我们从String.fromCharCode中获得的这些值一致。
我自己的要求仅限于处理数字和普通字母(根据字符串中的位置接受或拒绝),并允许控制字符(F键、ctrl之类)通过。因此,我可以检查控制字符,如果它不是控制字符,我会根据范围进行检查,只有这样我才需要获得实际的字符。考虑到我不担心大小写(无论如何,我都会将所有字母改为大写),并且已经限制了键代码的范围,我只需要担心数字键盘键。以下内容就足够了:
String.fromCharCode
((96<=key&&key<=105)?键-48:键)一般来说,一个可靠地从charcode返回字符的函数会很好(可能是作为jQuery插件),但我现在没有时间写它。很抱歉
我还提到e.which(如果您使用的是jQuery),它将e.keyCode和e.charCode规范化,这样您就不必担心按下了哪种键。将其与String.fromCharCode
结合的问题仍然存在。
1我有一段时间很困惑。所有的文档都说String.fromCharCode
需要unicode charcode,而在实践中,它似乎适用于ASCII charcode,但我认为这是因为需要从十六进制转换为十进制,再加上ASCII charcode和unicode decimal charcode在普通拉丁字母中重叠。
- 带时区的Javascript Datestring转换器
- 带Js的货币转换器
- Ajax调用OGRE转换器
- 使用润滑器键预加载页面
- JavaScript中的温度转换器(IF ELSE条件)
- 将数组转换为键值对
- PDF到JPG的转换器
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- JavaScript 中的图像旋转器(键下)
- JQuery 验证 - 如何检测“&”键(只允许“&”而不是“7”,因为两个键码都是“55”)
- 货币转换器未转换
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- 显示Aurelia值转换器上的所有过滤器
- AngularJS希伯来文日期转换器
- 带有JSONp的货币转换器
- 如何将JSON数组转换为键值数组
- JS或C#中的货币转换器
- 设置money.js(用于货币转换器)时出现问题
- 创建/使用简单的美制到公制转换器的问题.(HTML/JavaScript)函数未启动
- ASCII到键码转换器