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

Всі прапори в деталях

Complete recap of all the flags available in modern JavaScript (ES2024). A flag is a single character that modifies the behavior of the regex; they can be combined in any order.

FlagNameEffect
gGlobalFinds all matches, not just the first (required for matchAll).
iIgnore caseCase-insensitive (incl. Unicode characters with the u/v flag).
mMultiline^ and $ match the start/end of a line, not just the string.
sDot allThe . also matches newline \n.
uUnicodeCorrect handling of code points > 0xFFFF and enables \\p{...}.
vUnicode v-modeModern extension of u with set operations ([abc&&[def]]).
yStickyMatches only from position lastIndex, no skipping.
dHas indicesThe result includes indices with start/end of each group.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

Typical combinations

  • g + i -- "find everything, case-insensitive". 80% of practical uses.
  • g + m -- to match line by line in multiline text.
  • g + s -- "the dot matches anything, including newlines". Useful to extract blocks across multiple lines.
  • u (or v) -- always if you are dealing with real-world text in any language or emoji.

Unicode v-mode and flag evolution

The v flag (available in ES2024) replaces u and enables advanced operations on sets, such as character class intersection and subtraction (e.g. [\\p{White_Space}&&\\p{ASCII}]).

Try it

вправи#regex.m7.l1.e1
Спроби: 0Завантаження…

Find all occurrences of 'ciao' regardless of case. Use the correct flag.

Завантаження редактора…
Показати підказку

Add the i flag (case-insensitive) next to g.

Рішення доступне після 3 спроб

Review exercise

вправи#regex.m7.l1.e2
Спроби: 0Завантаження…

Find a block between `<pre>` and `</pre>` even if it contains newlines. You must use the flag that makes the dot also match newlines.

Завантаження редактора…
Показати підказку

Add the s flag so . matches newlines too, and use lazy .+? to stop at the first </pre>.

Рішення доступне після 3 спроб

Additional challenge

вправи#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}]+`.

Завантаження редактора…
Показати підказку

Use the v flag and write the set subtraction [\p{ASCII}--\p{Nd}]+ to exclude numbers.

Рішення доступне після 3 спроб