TK TaskKit
Developer-Tools

Regex-Tester

JavaScript-Regex testen mit Treffer-Hervorhebung, Capture-Gruppen und Web-Worker-Timeout gegen katastrophales Backtracking.

Muster/

Gib ein Muster ein, um eine Token-für-Token-Aufschlüsselung zu sehen.

Testtext
Ergebnis
Tippe ein Muster und einen Testtext, um Treffer zu sehen.

Eingaben bleiben auf diesem Gerät. Alle Developer-Tools auf TaskKit laufen vollständig im Browser. Tokens, Payloads und eingefügte Texte werden weder an TaskKit noch an Dritte übertragen.

Was dieses Tool macht

Ein JavaScript-Regex-Tester mit Live-Treffer-Hervorhebung, Capture-Group-Aufschlüsselung und Schutz gegen katastrophales Backtracking. Das Flags-Feld nimmt die Standardmenge (g i m s u y); Treffer werden mit Start-/End-Indizes und allen benannten oder nummerierten Gruppen aufgelistet.

Wann du es brauchst

  • Einen Regex an einer repräsentativen Stichprobe entwerfen, bevor du ihn in den Code kopierst.
  • Bestätigen, was ein fremder Regex tatsächlich matcht (und was nicht).
  • Ein Pattern enger ziehen, das in Produktion zu greedy oder zu loose war.
  • Den JavaScript-Dialekt speziell üben — jede Sprache hat subtil andere Semantik.

Wie es funktioniert

Das Pattern wird mit new RegExp(pattern, flags) kompiliert und gegen den Testtext laufen gelassen. Das Matching passiert in einem Web Worker mit 1-Sekunde-Timeout — löst das Pattern auf der Eingabe katastrophales Backtracking aus, wird der Worker terminiert, und du siehst eine "Regex hat zu lange gebraucht"-Meldung statt eines eingefrorenen Tabs. Realer Concern bei Patterns wie (a+)+b gegen lange a-Eingaben.

Hinweise

Warum ein Web Worker? Browser-Regex-Engines bieten kein Timeout, und ein einzelner langsamer Regex kann den Main-Thread zehntausende ms blockieren. Matching im Worker erlaubt worker.terminate() und hält das UI responsiv.

Werden Perl/PCRE-Features unterstützt? Nein — nur was JavaScript kann. \K, atomare Gruppen, possessive Quantoren und rekursive Patterns sind nicht Teil der JS-Regex-Grammatik. Lookbehind und benannte Gruppen schon.

Mein Regex matcht hier, aber nicht in meinem Code. Prüf die Flags. Das u-Flag ändert, wie manche Zeichenklassen Unicode matchen; g beeinflusst State über Aufrufe hinweg, wenn du das Regex-Objekt wiederverwendest.

Verwandte Tools