Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (https://javascript.ru/forum/misc/57635-regulyarnoe-vyrazhenie.html)

Decode 12.08.2015 17:40

Регулярное выражение
 
name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1');


Для чего во втором аргументе реплайса используется два слэша?

рони 12.08.2015 18:25

Decode,
для того чтобы можно было создать new RegExp со специальными символами
Цитата:

\ Для обычных символов - делает их специальными. Например, выражение /s/ ищет просто символ 's'. А если поставить \ перед s, то /\s/ уже обозначает пробельный символ.И наоборот, если символ специальный, например *, то \ сделает его просто обычным символом "звездочка". Например, /a*/ ищет 0 или больше подряд идущих символов 'a'. Чтобы найти а со звездочкой 'a*' - поставим \ перед спец. символом: /a\*/.
http://javascript.ru/REGexp

рони 12.08.2015 18:27

Цитата:

Сообщение от Decode
два слэша?

чтобы был один явно
var name = "имя со скобочками[] нужно найти"
alert(name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1'));
alert(name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\$1'));

Decode 12.08.2015 18:59

рони, да, спс. Я разобрался, просто не до конца пример посмотрел. Там name перезаписывается и потом в new RegExp новая регулярка создается.


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