阻止输入除英语以外的任何其他字母

Block typing in any other alphabet than english

我知道 JavaScript 限制使用 charcode 和 ascii 值输入一些特殊字符或数字等。

有什么办法可以阻止人们输入任何其他语言(我的意思是字母表),除了英语?更具体地说,我怎样才能阻止人们在文本框中输入中文或其他非英文字母名称,并让他们严格只输入英文字母名称?

谢谢

您可以通过使用 inputString.match(/^[A-Za-z]+$/) 之类的内容检查用户的输入,轻松地将用户限制为特定字符集。这将捕获像中文这样的语言,尽管有很多语言与英语共享几乎相同的字母表,因此不容易被阻止。

阻止所有非 ascii 输入的最简单方法可能是

/^[\x00-\xff]+$/.test(input);

如果 input 由纯 ascii 字符组成,则此表达式将 return true

如果找到任何非 ascii 字符,它将 return false


您可以调整接受的 ascii 字符的范围以满足您的需要。 \x00-\x55 包括 ascii 字符代码 0-255

我使用这个函数从输入中删除特殊字符

function removeSpecials(evt) {
var input = document.getElementById("myinput");
var patt = /[^\u0000-\u007F ]+/;
setTimeout(function() {
     var value = input.value;
     input.value = value.replace(patt,"");
 },100);

}

重点是:我创建了一个模式来检测所有特殊字符

var patt = /[^\u0000-\u007F ]+/;;

然后我替换输入值

value.replace(patt,"");

这是一个FIDDLE