Vai al contenuto
eLearner.app
Modulo 7 · Lezione 1 di 425/32 nel corso~12 min
Lezioni del modulo (1/4)

Tutti i flag in dettaglio

Riepilogo completo di tutte le flag disponibili in JavaScript moderno (ES2024). Una flag e' un singolo carattere che modifica il comportamento della regex; si combinano in qualsiasi ordine.

FlagNomeEffetto
gGlobalTrova tutti i match, non solo il primo (necessaria per matchAll).
iIgnore caseInsensibile a maiuscole/minuscole (incl. caratteri Unicode con flag u/v).
mMultiline^ e $ matchano inizio/fine riga, non solo stringa.
sDot allIl . matcha anche newline \n.
uUnicodeTrattamento corretto di code point > 0xFFFF e abilita \\p{...}.
vUnicode v-modeEstensione moderna di u con set operations ([abc&&[def]]).
yStickyMatch solo dalla posizione lastIndex, niente skip.
dHas indicesIl risultato include indices con start/end di ogni gruppo.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (sempre in ordine canonico: dgimsuvy)

Combinazioni tipiche

  • g + i -- "trova tutto, case-insensitive". L'80% degli usi pratici.
  • g + m -- per matchare riga per riga in un testo multilinea.
  • g + s -- "il punto matcha tutto, anche newline". Utile per estrarre blocchi su piu' righe.
  • u (o v) -- sempre se hai a che fare con testi reali in italiano o emoji.

Unicode v-mode ed evoluzione dei flag

La flag v (disponibile in ES2024) sostituisce u e abilita operazioni avanzate sugli insiemi, come l'intersezione e la sottrazione di classi di caratteri (es. [\\p{White_Space}&&\\p{ASCII}]).

Prova tu

Esercizio#regex.m7.l1.e1
Tentativi: 0Caricamento…

Trova tutte le occorrenze di 'ciao' indipendentemente da maiuscole/minuscole. Usa la flag corretta.

Caricamento editor…
Mostra suggerimento

Aggiungi la flag i (case-insensitive) accanto a g.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#regex.m7.l1.e2
Tentativi: 0Caricamento…

Trova un blocco fra `<pre>` e `</pre>` anche se contiene newline. Devi usare la flag che fa matchare il punto anche ai newline.

Caricamento editor…
Mostra suggerimento

Aggiungi la flag s perche' . matchi anche newline, e usa lazy .+? per fermarsi alla prima </pre>.

Soluzione disponibile dopo 3 tentativi

Sfida aggiuntiva

Esercizio#regex.m7.l1.e3
Tentativi: 0Caricamento…

Matcha sequenze di caratteri ASCII escludendo esplicitamente le cifre usando le proprietà Unicode v-mode (flag `v`) e la sintassi di sottrazione dei set `[\p{ASCII}--\p{Nd}]+`.

Caricamento editor…
Mostra suggerimento

Usa la flag v e scrivi la sottrazione di set [\p{ASCII}--\p{Nd}]+ per escludere i numeri.

Soluzione disponibile dopo 3 tentativi