Direct naar de hoofdinhoud
Module 7 · Les 1 van 425/32 in de cursus~12 min
Modulelessen (1/4)

Alle vlaggen in detail

Volledige samenvatting van alle vlaggen die beschikbaar zijn in modern JavaScript (ES2024). Een vlag is een enkel teken dat het gedrag van de regex; ze kunnen in elke volgorde worden gecombineerd.

VlagNaamEffect
gGlobaalVindt alle overeenkomsten, niet alleen de eerste (vereist voor matchAll).
iHoofdlettergebruik negerenNiet hoofdlettergevoelig (incl. Unicode-tekens met de vlag u/v).
mMeerdere regels^ en $ komen overeen met het begin/einde van een regel, niet alleen met de tekenreeks.
sAlles stippelenDe . komt ook overeen met nieuwe regel \n.
uUnicodeCorrecte afhandeling van codepunten > 0xFFFF en schakelt \\p{...} in.
vUnicode v-modusModerne uitbreiding van u met vaste bewerkingen ([abc&&[def]]).
yKleverigKomt alleen overeen vanaf positie lastIndex, overslaan niet mogelijk.
dHeeft indexenHet resultaat omvat indices met begin/einde van elke groep.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

Typische combinaties

  • g + i -- "vind alles, hoofdlettergevoelig". 80% van de praktische toepassingen.
  • g + m -- om regel voor regel overeen te komen in tekst met meerdere regels.
  • g + s -- "de punt komt overeen met alles, inclusief nieuwe regels". Handig om blokken over meerdere lijnen te extraheren.
  • u (of v) -- altijd als je te maken hebt met echte tekst in welke taal of emoji dan ook.

Unicode v-modus en vlagevolutie

De vlag v (beschikbaar in ES2024) vervangt u en maakt geavanceerde bewerkingen op sets mogelijk, zoals het kruisen en aftrekken van tekenklassen (bijv. [\\p{White_Space}&&\\p{ASCII}]).

Probeer het

Oefening#regex.m7.l1.e1
Pogingen: 0Laden…

Vind alle exemplaren van 'ciao', ongeacht het hoofdlettergebruik. Gebruik de juiste vlag.

Editor laden…
Toon hint

Voeg de i-vlag (niet hoofdlettergevoelig) toe naast g.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#regex.m7.l1.e2
Pogingen: 0Laden…

Zoek een blok tussen `<pre>` en `</pre>`, zelfs als het nieuwe regels bevat. U moet de vlag gebruiken die ervoor zorgt dat de punt ook overeenkomt met de nieuwe regels.

Editor laden…
Toon hint

Voeg de s-vlag zo toe. komt ook overeen met nieuwe regels, en gebruik lazy .+? om te stoppen bij de eerste </pre>.

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#regex.m7.l1.e3
Pogingen: 0Laden…

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

Editor laden…
Toon hint

Gebruik de vlag v en schrijf de ingestelde aftrekking [\\p{ASCII}--\\p{Nd}]+ om getallen uit te sluiten.

Oplossing beschikbaar na 3 pogingen