Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2011, 08:13
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

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

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

Я не знаю, что написать в квадратных скобках, чтобы там учитывались и двойные кавычки и одинарные...
Можно, конечно, присвоить в переменную re некоторое значение и анализировать его внутри функции, но хотелось бы сделать покрасивее...
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2011, 08:19
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

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


\ экранирует символ (управляющие символы делает обычными и наоборот).
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2011, 08:26
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

Обратите внимание, что двойная кавычка используется при указании функции обработчику событий и при попытке ее указать внутри квадратных скобок не желает экранироваться.
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2011, 08:41
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

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

убрал пробелы и смог избавиться от внешних кавычек. Еще какие-то варианты есть?
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2011, 09:02
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

onchange="replace(this);"


function replace(a) {
	RemoveDeniedSymbols(a, '["\']');
}
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2011, 09:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

demoniqus,
<input type=text   onchange="RemoveDeniedSymbols(this, '[\x22\x27]')">
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по работе функций в PHP bayah Серверные языки и технологии 2 12.02.2011 17:42
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Вопрос по регулярным выражениям JavaScript demoniqus Общие вопросы Javascript 5 01.12.2010 00:05
Вопрос по регулярным выражениям onejsquestion Общие вопросы Javascript 3 08.08.2010 17:34
Вопрос по регулярным выражениям demoniqus Общие вопросы Javascript 0 04.03.2009 11:08