ES6 - RegExp
Регулярное выражение - это объект, описывающий набор символов. Регулярные выражения часто сокращаются до «regex" или же "regexp».
JavaScript RegExp class представляет регулярные выражения, и как String, так и RegExp определяют методы, которые используют регулярные выражения для выполнения мощных функций сопоставления с образцом и поиска и замены текста.
Регулярное выражение можно определить как -
var pattern = new RegExp(pattern, attributes);
OR
var pattern = /pattern/attributes;
Атрибут может иметь любую комбинацию следующих значений.
Старший Нет | Атрибут и описание |
---|---|
1 | G Глобальный матч |
2 | I Игнорировать регистр |
3 | M Многострочный; обрабатывать начальные и конечные символы (^ и $) как работу над несколькими строками (т.е. соответствовать началу или концу каждой строки (разделенным \ n или \ r), а не только самому началу или концу всей входной строки ) |
4 | U Юникод; обрабатывать шаблон как последовательность кодовых точек Unicode |
5 | Y Липкий; совпадает только с индексом, указанным свойством lastIndex этого регулярного выражения в целевой строке (и не пытается сопоставить с любыми более поздними индексами) |
Построение регулярных выражений
Скобки
Скобки ([]) имеют особое значение при использовании в контексте регулярных выражений. Они используются для поиска ряда символов.
Старший Нет | Выражение и описание |
---|---|
1 | [...] Любой символ в скобках |
2 | [^...] Любой символ не в скобках |
3 | [0-9] Соответствует любой десятичной цифре от 0 до 9 |
4 | [a-z] Соответствует любому символу в нижнем регистре a через строчные буквы z |
5 | [A-Z] Соответствует любому символу в верхнем регистре A через заглавную Z |
6 | [a-Z] Соответствует любому символу в нижнем регистре a через заглавную Z |
Указанные выше диапазоны являются общими; вы также можете использовать диапазон [0–3] для сопоставления любой десятичной цифры в диапазоне от 0 до 3 или диапазон [bv] для сопоставления любого символа нижнего регистра в диапазоне от b до v.
Квантификаторы
Частота или положение заключенных в квадратные скобки последовательностей символов и отдельных символов могут быть обозначены специальным символом. Каждый специальный символ имеет определенный оттенок. В+, *, ?, и $ все флаги следуют за последовательностью символов.
Старший Нет | Выражение и описание |
---|---|
1 | p+ Соответствует любой строке, содержащей хотя бы один p. |
2 | p* Соответствует любой строке, содержащей ноль или более p's |
3 | p? Соответствует любой строке, содержащей один или несколько p's |
4 | p{N} Соответствует любой строке, содержащей последовательность N p's |
5 | p{2,3} Соответствует любой строке, содержащей последовательность из двух или трех p's |
6 | p{2, } Соответствует любой строке, содержащей последовательность не менее двух p's |
7 | p$ Соответствует любой строке с p в конце этого |
8 | ^p Соответствует любой строке с p в начале этого |
9 | [^a-zA-Z] Соответствует любой строке, не содержащей символов в диапазоне от a через z и A через Z |
10 | p.p Соответствует любой строке, содержащей p, за которым следует любой символ, а затем еще один p |
11 | ^.{2}$ Соответствует любой строке, содержащей ровно два символа |
12 | <b>(.*)</b> Соответствует любой строке, заключенной в <b> и </b> |
13 | p(hp)* Соответствует любой строке, содержащей p за которым следуют ноль или более экземпляров последовательности hp |
Буквальные символы
Старший Нет | Характер и описание |
---|---|
1 | Alphanumeric Сам |
2 | \0 Символ NULL (\ u0000) |
3 | \t Вкладка (\ u0009) |
4 | \n Новая строка (\ u000A) |
5 | \v Вертикальная табуляция (\ u000B) |
6 | \f Подача формы (\ u000C) |
7 | \r Возврат каретки (\ u000D) |
8 | \xnn Латинский символ, заданный шестнадцатеричным числом. nn; например, \ x0A совпадает с \n |
9 | \uxxxx Символ Юникода, заданный шестнадцатеричным числом. xxxx; например, \ u0009 то же самое, что и\t |
10 | \cX Управляющий символ ^ X; например, \ cJ эквивалентно символу новой строки\n |
Мета-символы
А meta-character - это просто алфавитный символ, которому предшествует обратная косая черта, которая придает комбинации особое значение.
Например, вы можете найти крупную сумму денег с помощью '\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) Соответствует любой из указанных альтернатив |
Свойства RegExp
Старший Нет | Свойства и описание |
---|---|
1 | RegExp.prototype.flags Строка, содержащая флаги объекта RegExp |
2 | RegExp.prototype.global Проверять ли регулярное выражение на все возможные совпадения в строке или только на первое |
3 | RegExp.prototype.ignoreCase Следует ли игнорировать регистр при попытке сопоставления в строке |
4 | RegExp.prototype.lastIndex Является ли свойство чтения / записи объектов RegExp. |
5 | RegExp.prototype.multiline Следует ли искать строки в нескольких строках |
6 | RegExp.prototype.source Текст выкройки |
Методы RegExp
Старший Нет | Метод и описание |
---|---|
1 | RegExp.prototype.exec () Выполняет поиск совпадения в строковом параметре |
2 | RegExp.prototype.test () Проверяет соответствие в строковом параметре |
3 | RegExp.prototype.match () Выполняет сопоставление с заданной строкой и возвращает результат сопоставления |
4 | RegExp.prototype.replace () Заменяет совпадения в заданной строке новой подстрокой |
5 | RegExp.prototype.search () Ищет совпадение в заданной строке и возвращает индекс, найденный в строке. |
6 | RegExp.prototype.split () Разбивает заданную строку на массив, разделяя строку на подстроки |
7 | RegExp.prototype.toString () Возвращает строку, представляющую указанный объект. Переопределяет метод Object.prototype.toString () |