Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как правильно экранировать обратные слеши \ в new RegExp? (https://javascript.ru/forum/misc/53725-kak-pravilno-ehkranirovat-obratnye-sleshi-%5C-v-new-regexp.html)

Momon 15.02.2015 21:09

Как правильно экранировать обратные слеши \ в 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:27

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

ruslan_mart 16.02.2015 06:47

Цитата:

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

Всё правильно написано. Это же строка, если не экранизировать слеш, то он просто исчезнет в результате.

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

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

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

Aetae 16.02.2015 08:38

Цитата:

Сообщение от Momon (Сообщение 356742)
\\ так и оставляем.

\\ -> \\\\

Momon 16.02.2015 10:19

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


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