Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по регулярным выражениям (https://javascript.ru/forum/misc/16017-vopros-po-regulyarnym-vyrazheniyam.html)

demoniqus 23.03.2011 08:13

Вопрос по регулярным выражениям
 
Есть функция
function RemoveDeniedSymbols(obj, re) {
re = new RegExp(re, 'g');
obj.value = obj.value.replace(re, '');
}

ей в качестве параметров передаются объект, в котором надо убрать недопустимые символы, и строка, которая будет преобразована в регулярное выражение, по которому и будут произведены замены. Большинство управляющих символов не составляет труда передать, но проблема возникает с передачей кавычек
<input type=text onChange="RemoveDeniedSymbols(this, '[]')"

Я не знаю, что написать в квадратных скобках, чтобы там учитывались и двойные кавычки и одинарные...
Можно, конечно, присвоить в переменную re некоторое значение и анализировать его внутри функции, но хотелось бы сделать покрасивее...

Matre 23.03.2011 08:19

RemoveDeniedSymbols(this, '["\']')


\ экранирует символ (управляющие символы делает обычными и наоборот).

demoniqus 23.03.2011 08:26

Обратите внимание, что двойная кавычка используется при указании функции обработчику событий и при попытке ее указать внутри квадратных скобок не желает экранироваться.

demoniqus 23.03.2011 08:41

вот вроде нашел такой вариант
<input type=text size=10 id=identification0 onChange=RemoveDeniedSymbols(this,'"'+'|'+"'") />

убрал пробелы и смог избавиться от внешних кавычек. Еще какие-то варианты есть?

Matre 23.03.2011 09:02

onchange="replace(this);"


function replace(a) {
	RemoveDeniedSymbols(a, '["\']');
}

рони 23.03.2011 09:06

demoniqus,
<input type=text   onchange="RemoveDeniedSymbols(this, '[\x22\x27]')">


Часовой пояс GMT +3, время: 08:05.