JavaScript RegExpОбъект
Объект RegExp
Регулярные выражения — это объекты, которые описывают шаблоны символов.
Регулярные выражения используются для сопоставления строк с шаблоном, поиска и замены, а также являются мощными инструментами для сопоставления строк с шаблоном.
Синтаксис
Или, если проще:
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 | Возвращает шаблон совпадения регулярного выражения. |