Encoders & Utilities

Regex Tester

Test JavaScript-regex met live match-highlighting, capture groups en replace-preview.

g (global), i (case-insensitive), m (multiline), s (dotall), u (unicode), y (sticky)

Quick reference

\d Digit (0–9)
\w Word char (a-z, 0-9, _)
\s Whitespace
[^abc] Anything except a/b/c
^/$ Start / end of line (with m flag)
a* Zero or more
a+ One or more
a? Zero or one
a{n,m} Between n and m repetitions
(?<name>…) Named capture group
(?=…) Lookahead
(?<=…) Lookbehind

Over deze tool

Regex Tester evalueert JavaScript reguliere expressies tegen een hoeveelheid testtekst en markeert elke match ter plekke. Het patroon-veld accepteert de volledige ECMAScript-regex-syntax — anchors, character classes, alternation, lookahead, lookbehind, named capture groups, Unicode-eigenschap-escapes — met aparte toggles voor de standaard flags (g global, i ignore case, m multiline, s dot-matches-newline, u Unicode, y sticky). Matches zijn kleurgecodeerd en capture groups worden onder elke highlight vermeld.

Naast matching kan de tool een replace-preview naast het origineel uitvoeren — typ de vervangstring (met $1 / $<name>-backreferences) en zie precies wat uw regex zal produceren tegen de testinput. Elke operatie draait in uw browser met de native RegExp-engine, dus wat u hier debugt is exact wat in productie-JavaScript uitvoert (Node, Bun, Deno, elke browser).

Wanneer gebruikt u deze tool

  • Input-validators bouwen. E-mail-, telefoonnummer-, postcode-patronen — ontwerp en verifieer met realistische testdata voordat u naar code pusht.
  • Log-bestanden parseren. Itereer een multi-group capture-patroon tegen echte logregels totdat elk veld schoon eruit komt.
  • Bulk-bewerken. Test een find/replace-patroon voordat u het in uw editor over honderden bestanden draait.
  • Regex leren. Gemarkeerde matches plus directe feedback is de snelste manier om look-around, anchors en backreferences eigen te maken.

Over regex-smaken

Deze tool gebruikt JavaScript-regex (ECMAScript 2018+). PCRE, Python, .NET, Go en Java verschillen allemaal lichtelijk — PCRE ondersteunt recursieve patronen die JavaScript niet heeft, Python's re-module mist lookbehind in sommige versies, Go gebruikt RE2 dat backreferences volledig verbiedt. Als u een niet-JS-omgeving doelwit, dubbelcheck de smaak-specifieke features aan de ontvangende kant. Voor pure ECMAScript-compatibele patronen is deze tool gezaghebbend.

Veelgestelde vragen

Wat is het verschil tussen g-, m- en s-flags?

g (global) maakt dat .match() en .replace() elke match vinden in plaats van alleen de eerste. m (multiline) maakt dat ^ en $ matchen bij regeleinden binnen de input, niet alleen aan het begin/einde van de hele string. s (dotall) maakt dat . ook newlines matcht (standaardgedrag is ze overslaan). Ze zijn onafhankelijk — combineer naar behoefte.

Waarom werkt mijn lookbehind niet?

Lookbehind (?<=...) vereist moderne ECMAScript (2018+) en is beschikbaar in alle huidige evergreen-browsers en Node 10+. Oudere runtimes (IE 11, Safari vóór 16.4, zeer oude Node) wijzen het patroon af bij compile-time. Onze tester gebruikt de engine van de browser, dus als uw tester werkt maar de doel-runtime faalt, is het doel te oud. Workaround: herschrijf zonder lookbehind met een non-capturing group en een slice.

Hoe test ik tegen een lange string?

Plak het in het test-tekst-paneel — er is geen lengte-cap behalve wat de browser kan vasthouden. Voor bestanden, plak hun inhoud direct. Gemarkeerde matches blijven gesynchroniseerd terwijl u scrollt. Voor extreme invoer (megabytes tekst plus een catastrofaal-backtrackende regex) kan de pagina kort bevriezen; als dat gebeurt, vereenvoudig de regex of splits de invoer.

Wat is "catastrophic backtracking"?

Een patroon dat exponentiële tijd kost op bepaalde inputs — typisch geneste kwantificatoren als (a+)+ tegen een lange string die eindigt op een niet-match. De regex-engine probeert elke permutatie voordat hij opgeeft. Moderne JavaScript-engines hebben geen time-out, dus de pagina kan hangen. Fix: herschrijf zonder geneste kwantificatoren, gebruik possessive groups via (?:a+), of anker het patroon strikter.