Javascript - 删除除正则表达式定义的所有内容之外的所有内容?

时间:2011-10-25 15:15:52

标签: javascript regex

是否可以在每个keyUp事件中从文本框中删除除正则表达式定义的内容之外的所有内容?

例如,我有一个文本框和正则表达式^[a-zA-Z0-9]+$。每当用户输入(或粘贴)字符时,它将删除该正则表达式中未包含的任何字符。

2 个答案:

答案 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();
}

Example

答案 1 :(得分:2)

您可以使用带有否定字符类的正则表达式替换(我也缩写了字符,使其不区分大小写,并进行全局替换)

var input = document.getElementById('sandbox');    
input.onkeyup = function(){
  input.value = input.value.replace(/[^a-z0-9]/ig,'');
}

行动中:http://jsfiddle.net/theprawn/GvbKY/