阻止输入除英语以外的任何其他字母
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
我知道 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