Перейти к основному содержимому
Модуль 7 · Урок 1 из 425/32 в курсе~12 min
Уроки модуля (1/4)

Все флаги подробно

Полный обзор всех флагов, доступных в современном JavaScript. (ES2024). Флаг — это одиночный символ, который изменяет поведение регулярное выражение; их можно комбинировать в любом порядке.

ФлагИмяЭффект
gГлобальныйНаходит все совпадения, а не только первое (требуется для matchAll).
iИгнорировать регистрБез учета регистра (включая символы Юникода с флагом u/v).
mМногострочный^ и $ соответствуют началу/концу строки, а не только строки.
sРасставить все точки. также соответствует новой строке \n.
uЮникодПравильная обработка кодовых точек > 0xFFFF и включает \\p{...}.
vЮникод v-режимСовременное расширение u с операциями над множествами ([abc&&[def]]).
yЛипкийСоответствует только с позиции lastIndex, без пропусков.
dИмеет индексыРезультат включает indices с началом/концом каждой группы.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

Типичные комбинации

  • g + i -- "найти всё, без учета регистра". 80% практического использования.
  • g + m -- для построчного сопоставления в многострочном тексте.
  • g + s -- "точка соответствует чему угодно, включая символы новой строки". Полезно для извлечения блоков из нескольких строк. – u (или v) – всегда, если вы имеете дело с реальным текстом на любом языке или эмодзи.

Unicode v-режим и эволюция флагов

Флаг v (доступен в ES2024) заменяет u и обеспечивает расширенные операции с наборами, такие как пересечение и вычитание классов символов (например, [\\p{White_Space}&&\\p{ASCII}]).

Попробуйте это

Упражнение#regex.m7.l1.e1
Попыток: 0Загрузка…

Найдите все вхождения слова «ciao» независимо от регистра. Use the correct flag.

Загрузка редактора…
Показать подсказку

Добавьте флаг i (без учета регистра) рядом с g.

Решение доступно после 3 попыток

Обзор упражнения

Упражнение#regex.m7.l1.e2
Попыток: 0Загрузка…

Найдите блок между `<pre>` и `</pre>`, даже если он содержит символы новой строки. Вы должны использовать флаг, который заставляет точку также соответствовать новой строке.

Загрузка редактора…
Показать подсказку

Добавьте флаг s так. также соответствует символам новой строки и использует lazy .+? остановиться на первом </pre>.

Решение доступно после 3 попыток

Дополнительная задача

Упражнение#regex.m7.l1.e3
Попыток: 0Загрузка…

Match sequences of ASCII characters, explicitly excluding digits, using Unicode v-mode properties (flag `v`) and set subtraction syntax `[\p{ASCII}--\p{Nd}]+`.

Загрузка редактора…
Показать подсказку

Используйте флаг v и напишите вычитание множества [\\p{ASCII}--\\p{Nd}]+, чтобы исключить числа.

Решение доступно после 3 попыток