Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2015, 21:09
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

Как правильно экранировать обратные слеши \ в new RegExp?
При использовании функции-конструктора необходимо предварять специальные символы символом обратного слеша «\». Например:
var re = new RegExp('\\w+'); https://developer.mozilla.org/ru/doc...Objects/RegExp

1. Если я хочу написать кавычки в new RegExp мне нужно писать " или \"?
2. Если я хочу написать круглую скобку (как спец. символ) в new RegExp мне нужно писать \( или (?
3. Если я хочу написать литерал круглой скобки в в new RegExp мне нужно писать ( или \(?
4. Если я хочу написать обратный слеш (как спец. символ) в new RegExp мне нужно писать \\ или \?
5. Если я хочу написать литерал обратного слеша в new RegExp мне нужно писать \ или \\?
6. Если я хочу написать литерал слеша в new RegExp мне нужно писать \\/ или \/?

Кстати есть небольшая несостыковка, на http://javascript.ru/RegExp говорится что нужно экранировать не спец. символы, а сами обратные слеши: "необходимо помнить, что обратные слеши (\) должны экранироваться".

Последний раз редактировалось Momon, 15.02.2015 в 22:08.
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2015, 22:27
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

Короче не поленился открыл Фленагана тот пишет: тупо меняем \ на \\.
Следовательно, ну насколько я понял, ничего больше не трогаем, \\ так и оставляем.

Последний раз редактировалось Momon, 15.02.2015 в 22:36.
Ответить с цитированием
  #3 (permalink)  
Старый 16.02.2015, 06:47
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от Momon
Кстати есть небольшая несостыковка, на http://javascript.ru/RegExp говорится что нужно экранировать не спец. символы, а сами обратные слеши: "необходимо помнить, что обратные слеши (\) должны экранироваться".
Всё правильно написано. Это же строка, если не экранизировать слеш, то он просто исчезнет в результате.

var str = 'Bla\ bla bla';
alert(str); //Слеш пропал

str = 'Bla\' bla bla';
alert(str);

str = 'Bla \\bla bla';
alert(str);

Последний раз редактировалось ruslan_mart, 16.02.2015 в 06:52.
Ответить с цитированием
  #4 (permalink)  
Старый 16.02.2015, 08:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Сообщение от Momon Посмотреть сообщение
\\ так и оставляем.
\\ -> \\\\
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 16.02.2015, 10:19
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

Aetae,
Спасибо, я чувствовал что здесь что то не то.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
filter(this,this) как правильно сделать? Smip jQuery 5 23.02.2013 03:07
Как правильно интегрировать jQuery Lightbox в СMS? gogadesign Элементы интерфейса 0 12.01.2013 17:20
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19