Salt la conținutul principal
Modulul 7 · Lecția 1 din 425/32 în curs~12 min
Lecții din modul (1/4)

Toate steagurile în detaliu

Recapitulare completă a tuturor steaguri disponibile în JavaScript modern (ES2024). Un steag este un singur caracter care modifică comportamentul regex; pot fi combinate în orice ordine.

SteagulNumeEfect
gGlobalGăsește toate potrivirile, nu doar prima (obligatoriu pentru matchAll).
iIgnorați majusculeNu țin cont de majuscule și minuscule (inclusiv caractere Unicode cu marcajul u/v).
mMultilinie^ și $ se potrivesc cu începutul/sfârșitul unei linii, nu doar cu șirul.
sPunct toate. se potrivește și cu noua linie \n.
uUnicodeGestionarea corectă a punctelor de cod > 0xFFFF și activează \\p{...}.
vUnicode v-modeExtensie modernă a u cu operațiuni setate ([abc&&[def]]).
yLipiciosPotriviri numai din poziția lastIndex, fără sărituri.
dAre indiciRezultatul include indices cu începutul/sfârșitul fiecărui grup.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

Combinații tipice

  • g + i -- „găsește totul, fără majuscule și minuscule”. 80% din utilizări practice.
  • g + m -- pentru a potrivi linie cu linie în textul cu mai multe linii.
  • g + s -- „punctul se potrivește cu orice, inclusiv liniile noi”. Util pentru a extrage blocuri pe mai multe linii.
  • u (sau v) -- întotdeauna dacă aveți de-a face cu text din lumea reală în orice limbă sau emoji.

Modul v Unicode și evoluția steagului

Indicatorul v (disponibil în ES2024) înlocuiește u și permite operații avansate pe seturi, cum ar fi intersecția și scăderea clasei de caractere (de exemplu, [\\p{White_Space}&&\\p{ASCII}]).

Încearcă

Exercițiu#regex.m7.l1.e1
Încercări: 0Se încarcă…

Găsiți toate aparițiile lui „ciao”, indiferent de caz. Folosește steagul corect.

Se încarcă editorul...
Afișează indiciu

Adăugați steagul i (indiferent de majuscule și minuscule) lângă g.

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#regex.m7.l1.e2
Încercări: 0Se încarcă…

Găsiți un bloc între `<pre>` și `</pre>` chiar dacă conține linii noi. Trebuie să utilizați steagul care face ca punctul să se potrivească și cu liniile noi.

Se încarcă editorul...
Afișează indiciu

Adăugați steagul astfel încât . se potrivește și liniile noi și folosește lazy .+? a se opri la primul </pre>.

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#regex.m7.l1.e3
Încercări: 0Se încarcă…

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

Se încarcă editorul...
Afișează indiciu

Folosiți indicatorul v și scrieți scăderea setată [\\p{ASCII}--\\p{Nd}]+ pentru a exclude numere.

Soluție disponibilă după 3 încercări