如何判断键盘输入的使用JQuery

问题描述:

我有接受两种语言(英语和阿拉伯语) 我验证输入文本框中输入一个应用程序的语言,验证逻辑不是英语和阿拉伯语一样的,所以我需要知道什么是用户键入如何判断键盘输入的使用JQuery

所有的解决方案,我碰到确定了系统和浏览器,但没有我发现默认的语言帮我确定

您可以使用ActiveXObject的当前输入语言的语言发送一个输入键称'a'并读取其unicode/ascii值。如果它的英文不是97。看看这个问题:

Get the current keyboard layout language in JavaScript

+0

相同的解决方案不起作用,但它帮助我找出了一些问题,我需要知道更多关于它,虽然在我认为它解决之前,我会发布我在这里找到的 – 2012-03-12 10:15:11

可以使用Google's AJAX Language API

var content = "your text"; 
google.language.detect(content, function(result) { 
    if (!result.error) { 
    var language = 'unknown'; 
    for (lang in google.language.Languages) { 
     if (google.language.Languages[lang] == result.language) { 
     language = lang; 
     break; 
     } 
    } 
    // Now use the variable `language` 
    } 
}); 
+0

感谢帮助我的问题,但我试过这个解决方案,它需要很多时间,并使用jquery是为了节省时间在第一地方,除了我认为它总是返回相同的价值为两种语言 – 2012-03-12 10:18:03

+0

@MahaKhairy,它不是那么无用。如果它有足够的字符可读并且全部使用UTF8编码,它将返回几乎正确的语言。但它并不总是100% – Starx 2012-03-12 10:34:52

+0

感谢您的评论我不知道很多关于这个谷歌API,可能足够的字符条件没有应用,但我的应用程序应该工作,即使有一个字符,无论如何,该电话需要很多时间我需要对每个按键应用验证 – 2012-03-12 11:00:17

确定在这里做,这是为我工作的解决方案。 注意,在我的应用我知道肯定输入语言会两种语言输入的任一一个是英语或阿拉伯语 所以在这里我做了什么

  var msgText = entered message text; 
      var textLength = msgText.length; // entered message length 
      var isEnglish = true; 
      for (var index = 0; index <= textLength; index = index + 1) { 

       if (msgText.charCodeAt(index) > 160) { 
        //Not English 
        isEnglish=false; 
        break; 
       } 
      } 

上例是我需要的,如果单个字符是阿拉伯语整个文本应该验证为阿拉伯语,所以我添加了一个变量isEnglish = true默认情况下,只会改变,如果字符串中的字符不是英文 我使用charCodeAt(索引)迭代字符串中的字符,它返回ISO Latin-1字符数。 使用this页中的表格我能够确定此集合中代表英文字符的最大数量是160和