Javascript — удалить все, кроме того, что определено регулярным выражением?

#javascript #regex

#javascript #регулярное выражение

Вопрос:

Возможно ли удалить все из текстового поля, кроме того, что определено регулярным выражением, при каждом событии ввода?

Например, у меня есть текстовое поле и регулярное ^[a-zA-Z0-9] $ выражение. Всякий раз, когда пользователь вводит (или вставляет) символы, он удаляет любые символы, которые не содержатся в этом регулярном выражении.

Комментарии:

1. смотрите: bytes.com/topic/javascript/answers /…

Ответ №1:

HTML:

 <input />
 

Javascript:

 var input = document.getElementsByTagName('input')[0];
input.onkeydown = function () {
 input.value = input.value.match(/[a-zA-Z0-9] /g).join();
}
 

Пример

Ответ №2:

Вы могли бы использовать регулярное выражение заменить отрицаемым символьным классом (я также сократил символ, сделал его нечувствительным к регистру и выполнил глобальную замену)

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

В действии: http://jsfiddle.net/theprawn/GvbKY /