限制输入字段的多语言

时间:2013-09-04 13:21:41

标签: javascript jquery html

我有一项任务是限制非英语语言的输入字段。只有英语才能进入该字段。

我的文字框是

<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字符。有没有解决这个问题的方法?请帮忙

2 个答案:

答案 0 :(得分:0)

您可以使用Regex并仅允许a-zA-z,不带任何重音或有趣的字母。

答案 1 :(得分:0)

Fiddle

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

$("#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!!!")
}

Check your language