Javascript String.fromCharCode 区分大小写?
Posted
技术标签:
【中文标题】Javascript String.fromCharCode 区分大小写?【英文标题】:Javascript String.fromCharCode Case Sensitivity? 【发布时间】:2013-02-03 08:03:54 【问题描述】:我只是在监听输入元素的 keyup 事件并将结果收集到一个字符串中
word=word+String.fromCharCode(key.keyCode);
问题是这个词是大写字母,而我希望它区分大小写。 例如,如果我输入 abcef,我的累积单词就会变成 'ABCEF'。
注意 - 我需要一个纯 javascript 解决方案(没有库..) 有什么想法吗?
【问题讨论】:
65 是大写“A”的代码,而不是小写。String.fromCharCode(key.keyCode).toLowerCase()
??
那么小写 a 的键码是什么?在谷歌中找不到答案...
'keyup' 事件将返回 65,但 'keypress' 事件应该返回 97 小写!
@adeneo 是的,你成功了!这就是问题所在,我使用的 keyup 行为与预期不同。您可以将其写为答案,以便我可以接受...
【参考方案1】:
keyup
和 keydown
之类的事件对于 a
和 A
都将返回 65(如果按住该键,event.shiftKey
也将返回 true
)。
keypress
事件为大写和小写字母返回不同的键码,因此要区分大小写,您应该使用 keypress
事件,fromCharCode()
将返回正确的字母,区分大小写。
【讨论】:
您可以随时检查 event.shiftKey 是真还是假并应用 .toLowerCase() 我觉得你需要检查一下,因为有些kepress事件不能像keydowns一样被取消【参考方案2】:您可以随时拨打.toLowerCase()
word = word + String.fromCharCode(key.keyCode).toLowerCase();
在您决定已完成字符累积时,只调用一次.toLowerCase()
可能更有意义。
【讨论】:
如果有本地解决方案,我建议不要这样做。以上是关于Javascript String.fromCharCode 区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章
javascript JavaScript isset()等效: - JavaScript
JavaScript 使用JavaScript更改CSS(JavaScript)