2

我的任务是限制非英语语言的输入字段。该字段只能输入英语。

我的文本框是

<input type="text"/>

功能是

 $(document).on("keypress", "input[type='text'] function (event) {
        return suppressNonEng(event);
    });

function suppressNonEng(EventKey) {
    var key = EventKey.which || EventKey.keyCode;
    if (key > 128) { sefAlert("Only English is allowed"); return false; }
    else { return true; }
}

它在中文、希腊语和其他一些情况下也有效。但在西班牙语、法语的情况下,它不起作用,因为在英语和法语中使用了相同的 ASCII 字符。这个问题有什么解决办法吗?请帮忙

4

2 回答 2

0

您可以使用Regex和只允许a-zA-z 没有任何重音或有趣的字母。

于 2013-09-04T13:23:31.530 回答
0

小提琴

它很简单。您需要将输入的每个字符与一个正则表达式匹配,该正则表达式检查输入的字符是否来自英文字母表。

$("#mytextbox").on("keypress", function(event) {
    var englishAlphabetAndWhiteSpace = /[A-Za-z ]/g;
    var key = String.fromCharCode(event.which);
    if (englishAlphabetAndWhiteSpace.test(key)) {
        return true;
    }
    alert ("this is not in English");//put any message here!!!
});

在您发表评论后:

键盘上的每个键都有一个键码。因此,当您按下 E 之类的键时,计算机会将其解释为键码(在本例中为 69)。很难让计算机理解法语 E 或英语 E 之间的区别。

如果您不想提醒用户,只需将警报替换为return false;.

如果需要检测浏览器语言

用这个:

var userLang = navigator.language || navigator.userLanguage; 
alert ("The language you are using is: " + userLang);
if(userLang!=whatever-you-want){
    alert("only whatever-you-want allowed!!!")
}

检查您的语言

于 2013-09-04T13:35:00.620 回答