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.
| Steagul | Nume | Efect |
|---|---|---|
g | Global | Găsește toate potrivirile, nu doar prima (obligatoriu pentru matchAll). |
i | Ignorați majuscule | Nu țin cont de majuscule și minuscule (inclusiv caractere Unicode cu marcajul u/v). |
m | Multilinie | ^ și $ se potrivesc cu începutul/sfârșitul unei linii, nu doar cu șirul. |
s | Punct toate | . se potrivește și cu noua linie \n. |
u | Unicode | Gestionarea corectă a punctelor de cod > 0xFFFF și activează \\p{...}. |
v | Unicode v-mode | Extensie modernă a u cu operațiuni setate ([abc&&[def]]). |
y | Lipicios | Potriviri numai din poziția lastIndex, fără sărituri. |
d | Are indici | Rezultatul include indices cu începutul/sfârșitul fiecărui grup. |
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(sauv) -- î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ă
Găsiți toate aparițiile lui „ciao”, indiferent de caz. Folosește steagul corect.
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
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.
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ă
Match sequences of ASCII characters, explicitly excluding digits, using Unicode v-mode properties (flag `v`) and set subtraction syntax `[\p{ASCII}--\p{Nd}]+`.
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