Объяснение
Как работает Тестер Regex
Regex-Tester оценивает регулярное выражение (синтаксис JavaScript/ECMAScript) относительно тестового текста и показывает совпадения, их позицию, а также захваченные группы. С помощью флагов вы управляете, среди прочего, глобальным поиском (g), учётом регистра (i) и многострочным поведением (m).
Важно для безопасности: введённый пользователем шаблон может из-за «катастрофического бэктрекинга» вычисляться сколь угодно долго. Простое ограничение длины ввода от этого не защищает. Поэтому оценка выполняется в отдельном Web Worker; если он не отвечает в течение короткого времени, он принудительно завершается и отбрасывается. Главный поток — а значит и управление — всегда остаётся отзывчивым.
Ограничения этого инструмента
- Только синтаксис JavaScript regex — особенности PCRE/.NET отсутствуют.
- Блокирующие шаблоны прерываются, а не «исправляются».
- Максимум 1000 обработанных совпадений (перечислены первые 100).
Источники
- ECMAScript Specification: Синтаксис и семантика RegExp.
- OWASP: Regular expression Denial of Service (ReDoS).