我知道限制使用 charcode 和 ascii 值输入一些特殊字符或数字等的 JavaScript。
无论如何,我可以阻止人们输入任何其他语言(我的意思是字母表)期待英语吗?更具体地说,如何阻止人们在文本框中输入中文或其他非英文字母名称,并让他们严格输入英文字母名称?
谢谢
我知道限制使用 charcode 和 ascii 值输入一些特殊字符或数字等的 JavaScript。
无论如何,我可以阻止人们输入任何其他语言(我的意思是字母表)期待英语吗?更具体地说,如何阻止人们在文本框中输入中文或其他非英文字母名称,并让他们严格输入英文字母名称?
谢谢
我使用此功能从输入中删除特殊字符
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,"");
这是一个小提琴
阻止所有非ASCII输入的最简单方法可能是
/^[\x00-\xff]+$/.test(input);
true
如果input
由纯 ascii 字符组成,此表达式将返回。
false
如果找到任何非 ASCII 字符,它将返回。
您可以调整接受的 ascii 字符范围以满足您的需要。\x00-\x55
包括 ascii 字符代码0-255
您可以通过使用类似inputString.match(/^[A-Za-z]+$/)
. 这将捕获像中文这样的语言,尽管有很多语言几乎与英语共享相同的字母,因此不容易被阻止。