是否可以在每个keyUp事件中从文本框中删除除正则表达式定义的内容之外的所有内容?
例如,我有一个文本框和正则表达式^[a-zA-Z0-9]+$
。每当用户输入(或粘贴)字符时,它将删除该正则表达式中未包含的任何字符。
答案 0 :(得分:4)
HTML:
<input />
使用Javascript:
var input = document.getElementsByTagName('input')[0];
input.onkeydown = function () {
input.value = input.value.match(/[a-zA-Z0-9]+/g).join();
}
答案 1 :(得分:2)
您可以使用带有否定字符类的正则表达式替换(我也缩写了字符,使其不区分大小写,并进行全局替换)
var input = document.getElementById('sandbox');
input.onkeyup = function(){
input.value = input.value.replace(/[^a-z0-9]/ig,'');
}