Глаза страшат, а руки делают

 РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ JAVASCRIPT


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

Состоят из двух частей:

  • шаблон — набор искомых символов и метасимволов (специальных символов-команд);
  • модификатор(ы) (не обязательо), задающи(й|е) инструкцию для поиска.

Применяются

  • для организации поиска в тексте;
  • для замены части строк;
  • для проверки корректности ввода url или email.

Синтаксис

var myregexp = /шаблон/модификатор(ы)

шаблон — шаблон для поиска

модификатор(ы) — один или несколько параметров поиска

ПРИМЕР

var name = /^Вас(?:я|илий)/g

Поиск вхождений «Вася» или «Василий» в начале слов во всём проверяемом тексте.

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

Обозначение

Название

Описание

i

ignore case

Не учитывать регистр букв.

g

global search

Поиск всех вхождений образца в проверяемую строку.

m

multiline

Многострочный поиск.

Возможны любые комбинации этих трёх опций. Например, ig или gim.

Таблица метасимволов

\

Для символов, которые обычно трактуются буквально, означает, что следующий символ является специальным. Например, /n/ соответствует букве n, а /\n/ соответствует символу перевода строки.

Для символов, которые обычно трактуются как специальные, означает, что символ должен пониматься буквально. Например, /^/ означает начало строки, а /\^/ соответствует просто символу ^. /\\/ соответствует обратной косой черте \.

^

Соответствует началу строки.

$

Соответствует концу строки.

*

Соответствует повторению предыдущего символа нуль или более раз.

+

Соответствует повторению предыдущего символа один или более раз.

?

Соответствует повторению предыдущего символа нуль или один раз.

.

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

(pattern)

Соответствует строке pattern и запоминает найденное соответствие.

(?:pattern)

Соответствует строке pattern, но не запоминает найденное соответствие. Используется для группировки частей образца, например, /ко(?:т|шка)/ - это краткая запись выражения /кот|кошка/.

(?=pattern)

Соответствие с "заглядыванием вперед", происходит при соответствии строки pattern без запоминания найденного соответствия. Например, /Windows (?=95|98|NT|2000)/ соответствует "Windows " в строке "Windows 98", но не соответствует в строке "Windows 3.1". После сопоставления поиск продолжается с позиции, следующей за найденным соответствием, без учета заглядывания вперед.

(?!pattern)

Соответствие с "заглядыванием вперед", происходит при несоответствии строки pattern без запоминания найденного соответствия. Например, /Windows (?!95|98|NT|2000)/ соответствует "Windows " в строке "Windows 3.1", но не соответствует в строке "Windows 98". После сопоставления поиск продолжается с позиции, следующей за найденным соответствием, без учета заглядывания вперед.

x|y

Соответствует x или y.

{n}

n — неотрицательное число. Соответствует ровно n вхождениям предыдущего символа.

{n,}

n — неотрицательное число. Соответствует n или более вхождениям предыдущего символа. /x{1,}/ эквивалентно /x+/. /x{0,}/ эквивалентно /x*/.

{n,m}

n и m — неотрицательное числа. Соответствует не менее чем n и не более чем m вхождениям предыдущего символа. /x{0,1}/ эквивалентно /x?/.

[xyz]

Соответствует любому символу из заключенных в квадратные скобки.

[^xyz]

Соответствует любому символу, кроме заключенных в квадратные скобки.

[a-z]

Соответствует любому символу в указанном диапазоне.

[^a-z]

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

\b

Соответствует границе слова, т. е. позиции между словом и пробелом или переводом строки.

\B

Соответствует любой позиции, кроме границе слова.

\сX

Соответствует символу Ctrl+X. Например, /\cI/ эквивалентно /\t/.

\d

Соответствует цифре. Эквивалентно [0-9].

\D

Соответствует нецифровому символу. Эквивалентно [^0-9].

\f

Соответствует символу перевода формата (FF).

\n

Соответствует символу перевода строки (LF).

\r

Соответствует символу возврата каретки (CR).

\s

Соответствует символу пробела. Эквивалентно /[ \f\n\r\t\v]/.

\S

Соответствует любому непробельному символу. Эквивалентно /[^ \f\n\r\t\v]/.

\t

Соответствует символу табуляции (HT).

\v

Соответствует символу вертикальной табуляции (VT).

\w

Соответствует латинской букве, цифре или подчеркиванию. Эквивалентно /[A-Za-z0-9_] /.

\W

<Соответствует любому символу, кроме латинской буквы, цифры или подчеркивания. Эквивалентно /[^A-Za-z0-9_] /./p>

\n

n — положительное число. Соответствует n-ной запомненной подстроке. Вычисляется путем подсчета левых круглых скобок. Если левых скобок до этого символа меньше, чем n, то эквивалентно \0n.

\0n

n — восьмеричное число, не большее 377. Соответствует символу с восьмеричным кодом n. Например, /\011/ эквивалентно /\t/.

\xn

n — шестнадцатеричное число, состоящее из двух цифр. Соответствует символу с шестнадцатеричным кодом n. Например, /\x31/ эквивалентно /1/.

\un

n — шестнадцатеричное число, состоящее из четырех цифр. Соответствует символу Unicode с шестнадцатеричным кодом n. Например, /\u00A9/ эквивалентно /©/.


 004438