Jak funguje regex ve vašem prohlížeči?
Každý JavaScript runtime obsahuje nativní engine regulárních výrazů — new RegExp(pattern, flags) zkompiluje váš vzor, pak metody jako String.prototype.match, String.prototype.replace a RegExp.prototype.exec jej spouští proti libovolnému vstupnímu řetězci. Tento tester obaluje tento engine do UI, takže můžete upravovat, spouštět a zkoumat vzory bez opuštění prohlížeče. Nic, co napíšete — vzor, příznaky, testovací řetězec nebo nahrazení — není odesláno po síti.
Jak tester regulárních výrazů funguje?
Pipeline je několik krátkých kroků, všechny běží na straně klienta při každém stisku klávesy (debounce na 150 ms pro plynulé psaní):
- Tělo vzoru je přečteno ze vstupu výše (bez úvodních/závěrečných
/oddělovačů — jsou dekorativní). Vybrané přepínače příznaků jsou zřetězeny do řetězce příznaků jakoginebogimsuy. new RegExp(patternBody, flags)zkompiluje vzor. Pokud engine vyhodíSyntaxError(např. nespárovaná závorka nebo neplatný escape), zpráva je zobrazena nad testovacím řetězcem a seznam shod je vymazán. Chyba kompilace je skutečnáerr.messagez V8 / SpiderMonkey / JavaScriptCore, takže odpovídá tomu, co byste viděli v DevTools.- Pro seznam shod tester vždy enumeruje se syntetickým globálním flagem — takže i když vypnete
g, seznam stále ukazuje všechny shody. Standardní ochrana proti nulově širokým shodám (if (m.index === rx.lastIndex) rx.lastIndex++) zabraňuje zacyklení na vzorech, které odpovídají prázdnému řetězci. Režim Nahrazení respektuje vaši skutečnou sadu flagů, takže$&se chová stejně jakoString.prototype.replace. - Mezi každou iterací tester kontroluje
performance.now() - starta přeruší po 50 ms. To chrání proti katastrofickému backtrackingu na vstupech jako(a+)+$proti dlouhému řetězcia— záložka by jinak zamrzla. Ochrana je nejlepším úsilím: patologický jediný match vzor může stále spotřebovat čas uvnitř jednoho voláníexec. Pokud se to stane, obnovte záložku a přepište vzor s nechamtivým kvantifikátorem. - Testovací řetězec je rozdělen na segmenty podle rozsahu každé shody a odpovídající segmenty jsou zabaleny do
<mark class="rx-match rx-cap-N">elementů, kdeNcyklí přes šest paletových barev, takže sousední shody lze snadno rozlišit na první pohled. Číslované skupiny (m[1],m[2], …) a pojmenované skupiny (m.groups) jsou zobrazeny jako popsané řádky pod nimi; pokud je nastaven flagd, jsou zobrazeny také indexy[start, end]pro skupinu.
Proč použít tento tester regexu?
- Soukromí: každý vzor, testovací řetězec a nahrazení běží ve vašem prohlížeči pomocí vestavěného JavaScript RegExp enginu. Nic neopouští záložku — důležité, když je vstupem zákaznický log, vzor uniklých přihlašovacích údajů nebo cokoli, co byste nevložili do hostovaného SaaS playgroundu.
- Upřímný jazyk: tester vystavuje přesný regex engine, který používá Node.js, Chrome, Safari, Firefox a každý validátor formulářů v prohlížeči. Neexistuje žádná překladová vrstva Perl-jazyka skrývající jemné rozdíly — co funguje zde, funguje ve vašem kódu.
- Ladění zachytávacích a pojmenovaných skupin: každá číslovaná skupina (
$1,$2, …) a pojmenovaná skupina ($<year>) je zobrazena pro každou shodu, takže můžete sestavit parser a číst sloty zpět bez hádání. Režim Nahrazení umožňuje volně míchat skupiny —$2-$1prohodí první dva sloty,$<name>vloží pojmenovaný slot a$&zopakuje celou shodu. - Ochrana proti katastrofickému backtrackingu: 50 ms strop na enumeraci přeruší patologické vzory jako
(a+)+$dříve, než zamrazí záložku. Místo zaseknutého prohlížeče uvidíte vysvětlující chybu a stránka se okamžitě zotaví.
Jaká jsou běžná použití testeru regexu?
Regulární výrazy se objevují v celém webovém vývoji, bezpečnosti a datové práci — tento tester cílí na nejčastější případy použití:
- Validace formulářů: prototypujte vzor pro e-mail, telefonní číslo nebo PSČ, vložte vzorové vstupy do testovacího řetězce a potvrďte, že všechny pozitivní případy odpovídají a všechny negativní ne, než vzor nasadíte do produkčního kódu.
- Stahování logů: vložte kus NGINX, aplikačního nebo auditního logu, napište vzor s pojmenovanými skupinami pro části, které vás zajímají (
(?<ip>…) (?<path>…)), a přečtěte zachycené sloty pro každou shodu pro potvrzení správnosti parseru. - Refaktorovat hledání a nahrazení: použijte režim Nahrazení pro přepsání identifikátorů —
(\w+)\.set(\w+)\(→$1.$2 =změní volání getterů na přiřazení vlastností a živý náhled ukáže výsledek před potvrzením.
Jak vypadá příklad regulárního výrazu?
Vezměte vzor (\d{4})-(\d{2})-(\d{2}) s flagem g spuštěný proti testovacímu řetězci release 2025-11-15, prerelease 2026-05-25. Engine najde dvě shody. První shoda je 2025-11-15 se skupinou 1 = 2025, skupinou 2 = 11, skupinou 3 = 15. Druhá shoda je 2026-05-25 se stejným tvarem skupin. V režimu Nahrazení šablona $3/$2/$1 přepíše obě data na 15/11/2025 a 25/05/2026.
Používejte tento tester jako rychlou cestu pro jakoukoli regex práci — vytváření, ladění nebo přepisování vzorů. Vše běží lokálně; nic není protokolováno; regex engine je ten, který váš prohlížeč dodává, takže chování odpovídá tomu, co produkční kód uvidí za běhu.