en.javascript.info/03-more/08-regular-expressions-javascript/04-regexp-special-characters/article.md
Ilya Kantor f301cb744d init
2014-10-26 22:10:13 +03:00

2.3 KiB
Raw Blame History

Экранирование специальных символов

В регулярных выражениях есть и другие символы, имеющие особый смысл.

Они используются, чтобы расширить возможности поиска.

Вот их полный список: [ \ ^ $ . | ? * + ( ).

Не пытайтесь запомнить его -- когда мы разберёмся с каждым из них по отдельности, он запомнится сам собой.

Чтобы использовать специальный символ в качестве обычного, он должен быть экранирован.

Или, другими словами, перед символом должен быть обратный слэш '\'.

Например, нам нужно найти точку '.'. В регулярном выражении она означает "любой символ, кроме новой строки", поэтому чтобы найти именно сам символ "точка" -- её нужно экранировать: ..

//+ run
alert( "Глава 5.1".match( /\d\.\d/ ) );  // 5.1

Круглые скобки также являются специальными символами, так что для поиска именно скобки нужно использовать \(. Пример ниже ищет строку "g()":

//+ run
alert( "function g()".match( /g\(\)/ ) );  // "g()"

Слэш '/', хотя и не является специальными символом, но открывает-закрывает регэксп в синтаксисе /...pattern.../. Поэтому его тоже нужно экранировать: '/'.

Так выглядит поиск слэша '/':

//+ run
alert( "/".match( /\// ) );  // '/'

Ну и, наконец, если нам нужно найти сам обратный слэш \, то его нужно просто задублировать.

Так выглядит поиск обратного слэша "\":

//+ run
alert( "1\2".match( /\\/ ) );  // '\'