javascript - JS 检查按下的按键是英语 i 还是土耳其语 i

标签 javascript jquery internationalization

目标:

使用 javascript/jquery 将用户类型的字符大写(大写)。 为此,我们使用 $('#input').keypress(...)

问题:

在英语中,字母i应大写为I

在土耳其语中,字母 i 应大写为 і

如果我们从 .keypress() 获取输入字符,我们会得到与输入的字符相对应的代码,但我们不知道它是否是英文 i (变成 I)或土耳其语 i(变成 і)。

如果我们从 .keydown() 获取输入字符,我们会得到与按下的键相对应的代码,但我们无法获取字符代码(它是 0)来确定按下的字符是否是英语 i(变为 і)或土耳其语 ı(变为 I)

解决方案:

因此,作为一种解决方法,我们考虑同时使用 keydown()keypress() 事件,因为 keydown() 优先,使用 keydown() 代码更新全局变量,我们在 keypress() 上检查该代码以获取键和字符,以便能够计算出哪个字符显示。

编辑:这只适用于 Chrome!

问题:

这是一个可行的跨平台解决方案吗?我们是否保证 keydown() 始终排在第一位?有没有更好、更简单的解决方案来解决这个问题?

编辑

我上面提到的解决方案仅适用于 chrome、firefox,从英语 i 和土耳其语 ' 键返回的按键代码(都打印 i) 是相同的 (73)。对于土耳其语 ',只有 chrome 返回正确的代码 (222)。

那么,有什么解决方案适用于所有浏览器吗?

最佳答案

toLocaleUpperCase() 方法不是您正在寻找的吗? http://www.w3schools.com/jsref/jsref_tolocaleuppercase.asp - 明确提到了土耳其语!

关于javascript - JS 检查按下的按键是英语 i 还是土耳其语 i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30664967/

相关文章:

javascript - 为什么 axios.get 没有返回 promise

javascript - 通用异步回调函数

javascript - 从循环值创建一个数组

javascript - 可以为日语网站生成相关文章列表的第三方工具

javascript - D3 JS 绘制条形图

javascript - 需要根据 jquery 中的选择框值每 X 秒刷新一次页面

javascript - 如何使可变数量的 div 100% 填充父容器?

javascript - 手动更改 aria-expanded ="true"不打开新选项卡

javascript - 如何解析从 Intl.DateTimeFormat 生成的日期字符串

jsp - Servlet 应用程序中的 Unicode 字符显示为问号