Регулярные выражения

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

Регулярное выражение создается при помощи косых черт внутри которых описывается шаблон для поиска /1456/ или при помощи конструктора: new RegExp(/11456/) . Метод test принимает аргумент в виде строки, в которой осуществляется поиск на основе шаблона и возвращает true при совпадении или false при отсутствии совпадения.

//

Поиск значения в строке равного значению шаблона:
/145/.test("11456") //true

[]

Поиск любого совпадения символов в строке с любым символом шаблона осуществляется добавлением искомых символов в квадратные скобки []:
/[мир]/.test("рим") //true /[мир]/.test("и") //true
Символы в квадратных скобках соответствуют одному символу.

[0-9]

Можно указывать диапазоны символов, например чисел 0-9:
/[0-9]/.test("Арзамас-16") //true
/[0-9]/ - будет искать символ в строке равный одному из символов: 0123456789.
Так же доступны следующие диапазоны:
[A-Z]
[a-z]
[А-Я]
[а-я]

\d

Символы обозначающие диапазоны:
\d - любая цифра;
\w - любой алфавитно-цифровой символ;
\s - любой пробельный символ;
\D - символ, который не является цифрой;
\W - не алфавитно-цифровой символ;
\S - не пробельный символ;
, - любой символ, кроме новой строки.

^

Искать любой символ, кроме символов перед которыми стоит ^:
/[^0-9]/.test("0123456789") //false - не найдены символы кроме цифры /[^0-9]/.test("Арзамас-16"") //true - найдены символы кроме цифры
Если указать перед квадратными скобками символ ^ то сопоставление шаблона происходит только с первым символом строки:
/^[^5-9]/.test("8zzzzzz") //false - на месте первого символа не найдены символы кроме цифр /^[^5-9]/.test("z8zzzzz") //true - на месте первого символа найдены символы кроме цифр

+

Искать необязательный повторяющийся символ можно установив + после символа который предположительно может повторяться:
/\d+/.test("0123456789") //true - ищет одну и более цифру

*

Ищет необязательно повторяющиеся символы при этом сам символ так же необязателен:
/\d*/.test("") //true - ищет одну и более цифру

?

Необязательный символ обозначается ?:
/10?/.test("10") //true /10?/.test("1") //true /10?1/.test("1") //false

{}

Фигурные скобки могут указывать количество допустимых символов:
{4} - точно 4 символа
{2-3} - от 2 до 3 симвлов
{,3} - до 3 символов
{3,} - от 3 символов
/\d{2}-\d{2}-\d{2}/.test("44-44-44") //true /\d{2}-\d{2}-\d{2}/.test("444-44-44") //true поскольку

^$

/\d{2}-\d{2}-\d{2}/.test("444-44-44")
true поскольку шаблон сместится вправо на одну цифру и обнаружит совпадение.
Для точного совпадения используются символы обозначающие начало ^ и конец $ строки:
/^\d{2}-\d{2}-\d{2}$/.test("444-44-44") //false

()

Группирует символы, что позволяет применять другие операторы к группе, путем его установления после закрывающей скобки:
/slow(ly)?/.test("slow")

|

Играет роль ИЛИ, может применяться в круглых скобках:
/(one|two|three)/.test("two") //true

exec

Метод регулярного выражения который возвращает null в случае отсутствия совпадения или объект с информацией о совпадении:
/(one|two|three)/.exec("one test") Полученная информация: 0: "one" 1: "one" groups: undefined index: 0 input: "one test" length: 2
0: "one" совпадение шаблона.
1: "one" если в шаблоне есть значения в () начинает искать эти значения в найденном 0: "one" и добавляет совпадение с следующим номером индекса.
index: 0 начальный индекс строки с которого начинается найденное совпадение. /one (two) (three)/.exec("one two three") Полученная информация: 0: "one two three" 1: "two" 2: "three" groups: undefined index: 0 input: "one two three" length: 3

match

Возвращает null или объект с информацией о найденном совпадении. Вызывается в качестве метода строкового объекта, в качестве аргумента принимает шаблон регулярного выражения:
"one test".match(/(one|two|three)/) Полученная информация: 0: "one" 1: "one" groups: undefined index: 0 input: "one test" length: 2