Ein echter Regex-Grenzfalllauf
JavaScript-Reguläre Ausdrücke mit Randfällen und sichereren Ersetzungen testen
Ein Ablauf für prüfbare JavaScript-Regex: Absicht in Fälle übersetzen, Engine und Flags prüfen und teure Muster von Produktionseingaben fernhalten.
Tool öffnenVor dem Muster beschreiben
Treffer, Nicht-Treffer, Ränder, Leerwert, Unicode und Fast-Treffer notieren. Volltreffer oder Gruppe angeben.
Anker, Grenzen, Leerraum, optionale Teile und Maskierungsregeln beeinflussen das Ergebnis. Für JSON, URLs, Datumswerte oder Auszeichnungssprachen mit vollständiger Grammatik sollte ein Parser verwendet werden.
Gleiche Engine und explizite Flags
Tool nutzt JavaScript RegExp: g, i, m, s, u, y. PCRE, Python, Java, .NET, Datenbank oder Server können abweichen.
g betrachtet Vorkommen, m ändert ^/$, s erweitert Punkt, u Unicode, y fordert genaue Position.
Gruppen und Ersetzung prüfen
Nummerierte und benannte Gruppen als vorhanden und optional fehlend prüfen.
Mit $&, $1 und $<name> testen. Bei Ersetzung arbeitet die Vorschau global, auch ohne g.
Performance-Risiko vermeiden
Mehrdeutige verschachtelte Wiederholungen wie `(a+)+` oder `(.*)*` können bei langen Fast-Treffern extrem langsam sein.
Die Grenzen von 500 KB und 1.000 Treffern ersetzen weder eine Prozessisolierung noch eine maximale Ausführungszeit. Verwenden Sie kurze problematische Testfälle und geeignete Schutzmaßnahmen auf dem Server.
Wiederholbare Fälle behalten
Muster, Flags, Beispiele und Erwartungen zusammen mit dem Code speichern und in der endgültigen Laufzeitumgebung automatisiert testen.
Alles bleibt lokal, aber Logs, Tokens, E-Mails und signierte URLs bleiben sensibel.
Häufige Fragen
Warum scheitert es auf dem Server?
Der Server kann eine andere Engine nutzen.
Ändert g die Ersetzung?
Die Vorschau ersetzt global.
Verhindern 500 KB langsame Regex?
Nein. Das Werkzeug setzt keine maximale Ausführungszeit durch.