JavaScript RegExpОбъект


Объект RegExp

Регулярные выражения — это объекты, которые описывают шаблоны символов.

Регулярные выражения используются для сопоставления строк с шаблоном, поиска и замены, а также являются мощными инструментами для сопоставления строк с шаблоном.

Синтаксис

var patt=new RegExp(pattern,modifiers);

Или, если проще:

var patt=/pattern/modifiers;
  • pattern (шаблон) описывает шаблон выражения
  • Модификаторы используются для указания глобального сопоставления, сопоставления с учетом регистра и многострочного сопоставления

Примечание:При использовании функции-конструктора для создания объекта RegExp требуются правила экранирования символов регулярного выражения (с префиксом в виде обратной косой черты \). Например, следующие записи эквивалентны:

var re = new RegExp("\\w+");
var re = /\w+/;

Чтобы узнать больше об объекте RegExp, прочитайте нашУчебник по объекту JavaScript RegExp。


Модификаторы

Модификаторы используются для выполнения сопоставления с учетом регистра и глобального сопоставления:

Модификатор Описание
i Выполняет сопоставление без учета регистра.
g Выполняет глобальное сопоставление (находит все совпадения, а не останавливается после первого найденного совпадения).
m Выполняет многострочное сопоставление.

Скобки

Квадратные скобки используются для поиска символов в определённом диапазоне:

Выражение Описание
[abc] Находит любой символ в скобках.
[^a-z] Находит любой символ, не входящий в скобки.
[0-9] Находит любую цифру от 0 до 9.
[a-z] Находит любой символ от строчной a до строчной z.
[A-Z] Находит любой символ от прописной A до прописной Z.
[A-z] Находит любой символ от прописной A до строчной z.
[adgk] Находит любой символ из заданного набора.
[^adgk] Находит любой символ вне заданного набора.
(red|blue|green) Находит любой из указанных вариантов.

Метасимволы

Метасимволы — это символы, имеющие особое значение:

Метасимвол Описание
. Находит один символ, кроме разрывов строк и символов конца строки.
\w Находит цифры, буквы и знаки подчёркивания.
\W Находит символы, не являющиеся словесными.
\d Находит цифру.
\D Находит нецифровой символ.
\s Находит пробельный символ.
\S Находит непробельный символ.
\b Совпадает с границей слова.
\B Соответствует негранице слова.
\0 Находит символ NULL.
\n Находит символ новой строки.
\f Находит символ перевода страницы.
\r Находит символ возврата каретки.
\t Находит символ табуляции.
\v Находит символ вертикальной табуляции.
\xxx Находит символ, заданный восьмеричным числом xxx.
\xdd Находит символ, заданный шестнадцатеричным числом dd.
\uxxxx Находит символ Unicode, заданный шестнадцатеричным числом xxxx.

Квантификаторы

Квантификатор Описание
n+

Соответствует любой строке, содержащей как минимум одну n.

Например, /a+/ соответствует "a" в "candy" и всем "a" в "caaaaaaandy".

n*

Соответствует любой строке, содержащей ноль или более n.

Например, /bo*/ соответствует "boooo" в "A ghost booooed", "b" в "A bird warbled", но не соответствует "A goat grunted".

n?

Соответствует любой строке, содержащей ноль или одну n.

Например, /e?le?/ соответствует "el" в "angel" и "le" в "angle".

n{X}

Соответствует строкам, содержащим последовательность из X n.

Например, /a{2}/ не соответствует "a" в "candy," но соответствует двум "a" в "caandy," и соответствует первым двум "a" в "caaandy."

n{X,}

X — положительное целое число. Соответствует, когда предшествующий шаблон n встречается подряд как минимум X раз.

Например, /a{2,}/ не соответствует "a" в "candy", но соответствует всем "a" в "caandy" и "caaaaaaandy".

n{X,Y}

X и Y — положительные целые числа. Соответствует, когда предшествующий шаблон n встречается подряд как минимум X раз и не более Y раз.

Например, /a{1,3}/ не соответствует "cndy", соответствует "a" в "candy,", двум "a" в "caandy," и первым трём "a" в "caaaaaaandy". Обратите внимание, что при сопоставлении с "caaaaaaandy", хотя в исходной строке больше "a", совпадением является "aaa".

n$ Соответствует любой строке, заканчивающейся на n.
^n Соответствует любой строке, начинающейся с n.
?=n Соответствует любой строке, непосредственно за которой следует указанная строка n.
?!n Соответствует любой строке, непосредственно за которой не следует указанная строка n.

Методы объекта RegExp

Метод Описание
compile Устарело в версии 1.5.Компилирует регулярное выражение.
exec Ищет указанное значение в строке. Возвращает найденное значение и определяет его позицию.
test Ищет указанное значение в строке. Возвращает true или false.
toString Возвращает строку регулярного выражения.

Методы объекта String, поддерживающие регулярные выражения

Метод Описание FF IE
search Ищет значение, соответствующее регулярному выражению. 1 4
совпадение Находит одно или несколько совпадений регулярного выражения. 1 4
замена Заменяет подстроки, соответствующие регулярному выражению. 1 4
split Разбивает строку на массив строк. 1 4

Свойства объекта RegExp

Свойство Описание
constructor Возвращает функцию, которая является прототипом для создания объектов RegExp.
global Определяет, установлен ли модификатор "g".
ignoreCase Определяет, установлен ли модификатор "i".
lastIndex Используется для указания начальной позиции следующего совпадения.
multiline Определяет, установлен ли модификатор "m".
source Возвращает шаблон совпадения регулярного выражения.
Другие расширения