如何用jquery识别键盘语言
How to identify what keyboard language is with jquery
有什么方法可以识别键盘语言吗?我有一个简单的文本框。我想检查键盘语言。当用户点击文本框时,如果键盘语言与波斯语相反,用户无法键入任何内容,并显示错误:"更改您的键盘语言为波斯语",当键盘语言更改时,用户可以键入。
在我的解决方案中,我使用了两种不同的方法来检测英语和波斯语字符:
document.getElementById('a').addEventListener('keypress',function(e){
if (isEnglish(e.charCode))
console.log('English');
else if(isPersian(e.key))
console.log('Persian');
else
console.log('Others')
});
function isEnglish(charCode){
return (charCode >= 97 && charCode <= 122)
|| (charCode>=65 && charCode<=90);
}
function isPersian(key){
var p = /^['u0600-'u06FF's]+$/;
return p.test(key) && key!=' ';
}
<input id="a" type="text"/>
我不认为这是可能的-无论如何,它可能不是你想要的(例如,Caps Lock仍然会输出英语)我建议在文本区域上放置一个keypress
事件监听器,并根据"仅波斯语"正则表达式检查每个字母像这样(未经测试):
document.getElementById('a').addEventListener('keypress',function(e){
if (e.charCode > 160)
console.log('persian');
else
console.log('english');
});
<input type="text" id="a"/>
如果你想匹配ZERO WIDTH SPACE,你也应该添加这个:
'u200B
var p = /^['u0600-'u06FF'u200B's]+$/;
显示更多字符,如" |«|»| ?|;|: |…参见Regex波斯语
使用jquery:
$("#selector").keyup(function (event) {
var code = event.key.charCodeAt(0);
if (isEnglish(code)) {
alert("you typed in english");
return;
}
else {
alert("please type in english");
}
});
function isEnglish(charCode) {
return (charCode >= 97 && charCode <= 122)
|| (charCode >= 65 && charCode <= 90);
}
This:
function only_persian(str){
var p = /^['u0600-'u06FF's]+$/;
if (!p.test(str)) {
alert("not format");
}
}
或者你可以这样写:http://imanmh.github.io/persianRex/
相关文章:
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- Express服务器中语言子域的最佳实践
- Android键盘不适用于包含Javascript的网页
- javascript虚拟键盘
- iPad虚拟键盘-哪一个-javasctript解决方案
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 我们可以使用任意的编程语言来动态化HTML页面吗
- React Native DeviceEventEmitter键盘WillShow停止工作
- 通过键盘编写SVG文本
- 使用键盘箭头在画布上移动字符串
- 下载所选语言的pdf文件
- 使用JavaScript自动更改键盘语言,没有IE就不起作用
- AngularJs的语言属性始终作为位置键盘
- 如何使用 Keydown 事件在多种语言/键盘布局中获取正确的字符
- 在Javascript中按下键盘前识别键盘语言
- 更改客户端编程语言中的键盘语言
- 如何用jquery识别键盘语言
- 我如何在Javascript编程语言中从键盘输入
- 以特定键盘语言打开弹出窗口
- 从服务器端或客户端检查或更改键盘键入语言