Регулярное выражение является объектом, который описывает шаблон символов.
В JavaScript класс RegExp представляет регулярные выражения, и строки и RegExp определяют методы, которые используют регулярные выражения для выполнения мощного поиска по шаблону, функции поиск и замену по тексту.
Регулярное выражение может быть определено с помощью конструктора RegExp(), а именно:
var pattern = new RegExp(pattern, attributes); или просто var pattern = /pattern/attributes;
Вот описание параметров:
Скобки ([]) имеют особое значение при использовании в контексте регулярных выражений. Они используются, чтобы найти диапазон символов.
№ | Экспрессия и описание |
---|---|
1 | […] – Любой символ в скобках. |
2 | [^…] – Любой символ, не входящий в скобках. |
3 | [0-9] – Соответствует любой десятичной цифры от 0 до 9. |
4 | [a-z] – Соответствует любому символу из строчных от a до z. |
5 | [A-Z] – Соответствует любому символу в верхнем регистре от А до Z. |
6 | [a-Z] – Соответствует любому символу от нижнего регистра а до верхнего регистра Z. |
Диапазоны, приведенные выше, являются общими; Вы можете также использовать диапазон [0-3], чтобы соответствовать любой десятичной цифры в диапазоне от 0 до 3, или диапазон [b-v], чтобы соответствовать любому символу в нижнем регистре, начиная от b до v.
Частота или положение заключенных в скобки последовательностей символов и одиночных символов можно обозначить специальным символом. Каждый специальный символ имеет определенную коннотацию. Флаги +, *, ?, и $ следуют последовательности символов.
№ | Экспрессия и описание |
---|---|
1 | р + – Соответствует любой строке, содержащей один или более р. |
2 | p* – Соответствует любой строке, содержащей ноль или более р. |
3 | p? – Соответствует любой строке, содержащей не более одного р. |
4 | р{N} – Соответствует любой строке, содержащей последовательность N p, |
5 | р{2,3} – Соответствует любой строке, содержащей последовательность два или три р. |
6 | р{2,} – Соответствует любой строке, содержащей последовательность, по меньшей мере, два р. |
7 | р$ – Соответствует любой строке с р в конце. |
8 | ^р – Соответствует любой строке с р в начале. |
Следующие примеры поясняют больше о соответствующих символах.
№ | Экспрессия и описание |
---|---|
1 | [^A-zA-Z] – Соответствует любой строке, не содержащей любой из символов, начиная от a до z и А до Z. |
2 | p.p – Соответствует любой строке, содержащей р, за которым следует любой символ, в свою очередь, за которым следует другой р. |
3 | ^.{2}$ – Соответствует любой строке, содержащей ровно два символа. |
4 | <b>(.*)</b> – Соответствует любой строке, заключенной в <b> и </b>. |
5 | p(hp)* – Соответствует любой строке, содержащей р, за которой следует ноль или более экземпляров последовательности hp. |
№ | Характер и описание |
---|---|
1 | Alphanumeric – Собственный |
2 | \0 – Символ NUL (\u0000) |
3 | \t – Табуляция (\u0009) |
4 | \n – Новая линия (\u000A) |
5 | \v – Вертикальная вкладка (\u000B) |
6 | \f – Перевод страницы (\u000C) |
7 | \r – Возврат каретки (\u000d) |
8 | \xnn – Латинский символ задается шестнадцатеричным числом nn; например, \x0A такое же, как \n |
9 | \uxxxx – Символ Юникода задается шестнадцатеричное число хххх; например, \u0009 такое же, как \t |
10 | \сХ – Управляющий символ ^X; например, \cJ эквивалентно символу новой строки \n |
Метасимволы, это просто алфавитный символ предшествует обратной косой черты, которая действует, чтобы дать сочетанию особое значение.
Например, вы можете найти большую сумму денег, используя «\d» метасимвол: /([\d]+)000/, здесь \d будет искать любую строку числового символа.
В следующей таблице перечислены набор метасимволов, которые могут быть использованы регулярные выражения в стиле PERL.
№ | Характер и описание |
---|---|
1 | . – один символ |
2 | \s – символ пробела (пробел, табуляция, перевод строки) |
3 | \S – символ без пробела |
4 | \d – цифра (0-9) |
5 | \D – не цифра |
6 | \w – символ слово (AZ, AZ, 0-9, _) |
7 | \W – не-буквенный символ |
8 | [\b] – клавиша возврат (частный случай). |
9 | [aeiou] – соответствует одному символу в данном наборе |
10 | [^aeiou] – соответствует одному символу за пределами заданного набора |
11 | (foo|bar|baz) – соответствует любому из указанных вариантов |
Некоторые модификаторы доступны, которые могут упростить способ работы с регулярными выражениями, как чувствительность к регистру, поиск в нескольких строках, и т.д.
№ | Модификатор & Описание |
---|---|
1 | i – Выполните сопоставление без учета регистра. |
2 | m – Указывает, что если строка имеет символы новой строки или возврата каретки, операторы ^ и $ теперь будут соответствовать против границы новой строки, вместо границы строки |
3 | g – Выполняют глобальное соответствие, т.е. находят все соответствия, а не останавливаются после первого соответствия. |
Вот список свойств, связанных с RegExp и их описание.
№ | Свойства & Описание |
---|---|
1 | constructor – Определяет функцию, которая создает прототип объекта. |
2 | global – Указывает, если модификатор «g» установлен. |
3 | IgnoreCase – Указывает, если модификатор«i» установлен. |
4 | lastIndex – Индекс, с которого начинается следующее соответствие. |
5 | multiline – Указывает, если модификатор «m» установлен. |
6 | source – Текст шаблона. |
В следующих разделах мы рассмотрим несколько примеров, демонстрирующих использование свойств RegExp.
Вот список методов, связанных с RegExp вместе с их описание.
№ | Метод & Описание |
---|---|
1 | exec() – Выполняет поиск соответствия в строковом параметре. |
2 | test() – Тесты на соответствие в строковом параметре. |
3 | toSource() – Возвращает буквенный объект, представляющий указанный объект; Вы можете использовать это значение для создания нового объекта. |
4 | toString() – Возвращает строку, представляющую определенный объект. |
В следующих разделах мы рассмотрим несколько примеров, демонстрирующих использование методов RegExp.