我有一项任务是限制非英语语言的输入字段。只有英语才能进入该字段。
我的文字框是
<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字符。有没有解决这个问题的方法?请帮忙
答案 0 :(得分:0)
您可以使用Regex
并仅允许a-zA-z
,不带任何重音或有趣的字母。
答案 1 :(得分: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!!!")
}