Regex Tester

Test reguliere expressies van JavaScript op voorbeeldtekst, gewoon in je browser.

Patroon
Flags
Test-string
Gemarkeerde overeenkomsten
Voer een patroon in om het te testen.

Je patroon en tekst worden getest in je browser. Er wordt niets geüpload naar BroBroGo.

Veelgestelde vragen

Is het veilig om mijn tekst hier te plakken?

Ja. Het zoeken naar overeenkomsten gebeurt volledig in je browser — er wordt niets naar BroBroGo verzonden.

Wat betekenen de g/i/m/s flags?

g vindt alle overeenkomsten in plaats van alleen de eerste. i negeert hoofdletters/kleine letters. m zorgt ervoor dat ^ en $ overeenkomen met het begin en einde van elke regel in plaats van de hele string. s zorgt ervoor dat . ook overeenkomt met regeleinden.

Waarom geeft de tool aan dat mijn patroon te lang duurt?

Sommige patronen veroorzaken 'catastrophic backtracking' — de engine probeert een exponentieel aantal combinaties voordat hij opgeeft, wat een browsertabblad kan bevriezen. Deze tool annuleert de bewerking na 2 seconden als dat gebeurt, zodat de pagina zelf nooit vastloopt. Probeer geneste herhalingen zoals (a+)+ te vereenvoudigen.

Werking van de Regex Tester

De Regex Tester is ontworpen voor het testen van JavaScript reguliere expressies op voorbeeldtekst, gewoon in je browser. De tool markeert elke overeenkomst en capture-groep direct, waardoor direct zichtbaar wordt hoe een reguliere expressie reageert op verschillende invoerwaarden. Dit helpt bij het controleren of een patroon specifieke tekstgedeelten correct identificeert, hoe vlaggen het gedrag beïnvloeden, en hoe specifieke delen van een string via capture-groepen kunnen worden geëxtraheerd.

De verwerking van de invoer vindt lokaal plaats. Je patroon en tekst worden getest in je browser. Er wordt niets geüpload naar BroBroGo.


Invoerparameters en vlaggen

De tool vereist twee primaire invoervelden om de evaluatie uit te voeren:

  • Patroon: De reguliere expressie die moet worden geëvalueerd. Een voorbeeld van een tijdelijke aanduiding in dit veld is \d+.
  • Test-string: De tekst waarop het patroon wordt toegepast. De tijdelijke aanduiding voor dit veld is "Plak of typ hier de tekst om je patroon op te testen".

Daarnaast kan het gedrag van de JavaScript-engine worden aangepast met vier specifieke vlaggen (flags):

Vlag Naam Werking
g Global Vindt alle overeenkomsten in plaats van alleen de eerste.
i Hoofdletterongevoelig Negeert het verschil tussen hoofdletters en kleine letters.
m Multiline Zorgt ervoor dat ^ en $ overeenkomen met het begin en einde van elke regel in plaats van de hele string.
s Punt matcht ook nieuwe regels Zorgt ervoor dat de punt (.) ook overeenkomt met regeleinden.

Interpretatie van de resultaten

Zodra er een geldig patroon en een test-string zijn ingevoerd, genereert de tool visuele en tekstuele uitvoer:

  • Gemarkeerde overeenkomsten: De ingevoerde test-string waarin alle gevonden overeenkomsten visueel zijn gemarkeerd.
  • Overeenkomsten: Een gestructureerde lijst met alle individuele resultaten. Indien het patroon capture-groepen bevat, worden deze per resultaat weergegeven onder de aanduiding Groep {n} (waarbij {n} het nummer van de groep vertegenwoordigt).
  • Overeenkomsten: {count}: Dit label toont het exacte aantal gevonden overeenkomsten in de tekst.
  • Tekens: Geeft het totale aantal tekens van de invoer weer.

Systeemregels en limieten

Bij het evalueren van patronen hanteert de engine strikte regels voor foutafhandeling en prestatiebewaking:

  • Geen overeenkomsten: Als het patroon geen resultaten oplevert in de test-string, toont de tool de melding "Geen overeenkomsten.".
  • Syntaxfouten: Bij een onjuiste opbouw van de reguliere expressie verschijnt de foutmelding "Ongeldige reguliere expressie.".
  • Tijdslimiet (Timeout): Als de uitvoering van een patroon langer dan 2 seconden duurt, wordt het proces afgebroken. De tool toont dan de waarschuwing: "Dit patroon doet er te lang over om uit te voeren — het is mogelijk extreem traag door backtracking. Probeer het te vereenvoudigen.".
  • Beperking zonder Global-vlag: Als de vlag g niet is ingeschakeld, stopt de engine na de eerste match en wordt uitsluitend die eerste overeenkomst geretourneerd.
  • Maximale limieten bij Global: Wanneer de vlag g wel actief is, verwerkt de tool maximaal 1.000 overeenkomsten. Er worden maximaal 100 kaarten met overeenkomsten getoond in de interface. Indien deze limiet wordt overschreden, verschijnt de melding "Eerste {max} worden weergegeven.".
  • Wissen: Door op de knop "Wissen" te klikken, worden alle invoer- en uitvoervelden leeggemaakt, waarna de status "Gewist." wordt weergegeven.

Prestaties en Catastrophic Backtracking

Een veelvoorkomend probleem bij het schrijven van reguliere expressies is een extreme vertraging door 'catastrophic backtracking'. Dit treedt op wanneer een patroon met geneste herhalingen (zoals (a+)+) wordt losgelaten op een string die net niet aan de voorwaarden voldoet. De engine probeert dan een exponentieel aantal combinaties te evalueren alvorens vast te stellen dat er geen match is.

In veel omgevingen kan dit leiden tot het volledig bevriezen van de applicatie of het browsertabblad. Deze tester voorkomt dit door de uitvoering na exact 2 seconden af te breken, waardoor de stabiliteit van de browser behouden blijft. Het optimaliseren van de reguliere expressie — bijvoorbeeld door het vermijden van overlappende of geneste herhalingen — lost dit prestatieprobleem doorgaans op.


Veelgestelde vragen (FAQ)

Is het veilig om mijn tekst hier te plakken?
Ja. Het zoeken naar overeenkomsten gebeurt volledig in je browser — er wordt niets naar BroBroGo verzonden.

Wat betekenen de g/i/m/s flags?
g vindt alle overeenkomsten in plaats van alleen de eerste. i negeert hoofdletters/kleine letters. m zorgt ervoor dat ^ en $ overeenkomen met het begin en einde van elke regel in plaats van de hele string. s zorgt ervoor dat . ook overeenkomt met regeleinden.

Waarom geeft de tool aan dat mijn patroon te lang duurt?
Sommige patronen veroorzaken 'catastrophic backtracking' — de engine probeert een exponentieel aantal combinaties voordat hij opgeeft, wat een browsertabblad kan bevriezen. Deze tool annuleert de bewerking na 2 seconden als dat gebeurt, zodat de pagina zelf nooit vastloopt. Probeer geneste herhalingen zoals (a+)+ te vereenvoudigen.