2

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

无论如何,我可以阻止人们输入任何其他语言(我的意思是字母表)期待英语吗?更具体地说,如何阻止人们在文本框中输入中文或其他非英文字母名称,并让他们严格输入英文字母名称?

谢谢

4

3 回答 3

2

我使用此功能从输入中删除特殊字符

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,"");

这是一个小提琴

于 2015-01-26T01:02:59.023 回答
1

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

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

true如果input由纯 ascii 字符组成,此表达式将返回。

false如果找到任何非 ASCII 字符,它将返回。


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

于 2015-01-26T01:01:33.517 回答
0

您可以通过使用类似inputString.match(/^[A-Za-z]+$/). 这将捕获像中文这样的语言,尽管有很多语言几乎与英语共享相同的字母,因此不容易被阻止。

于 2015-01-26T00:54:25.460 回答