TK TaskKit
Strumenti per dev

Tester regex

Testa espressioni regolari JavaScript con evidenziazione delle corrispondenze, gruppi di cattura e timeout in Web Worker contro il backtracking catastrofico.

Pattern/

Scrivi un pattern per vedere un dettaglio token per token.

Testo di test
Risultato
Scrivi un pattern e un testo di test per vedere le corrispondenze.

Gli input restano su questo dispositivo. Ogni strumento per dev di TaskKit gira interamente nel tuo browser. Token, payload e testo incollato non vengono trasmessi ai server di TaskKit né a terze parti.

Cosa fa questo strumento

Un tester di espressioni regolari JavaScript con evidenziazione delle corrispondenze in tempo reale, dettaglio dei gruppi di cattura e protezione contro il backtracking catastrofico. L'input dei flag accetta il set standard (g i m s u y), e le corrispondenze sono elencate con i loro indici di inizio e fine e qualsiasi gruppo nominato o numerato.

Quando usarlo

  • Bozzare una regex contro un campione rappresentativo prima di incollarla nel codice.
  • Confermare cosa una regex di qualcun altro corrisponda davvero (e cosa no).
  • Stringere un pattern che era troppo greedy o troppo permissivo in produzione.
  • Esercitarsi specificamente con il flavor JavaScript, dato che ogni linguaggio ha una semantica leggermente diversa.

Come funziona

Il pattern viene compilato con new RegExp(pattern, flags) e poi lanciato contro il testo di test. Il matching avviene in un Web Worker con un timeout di 1 secondo — se il pattern scatena backtracking catastrofico sull'input fornito, il worker viene terminato e vedi un errore « regex took too long » invece di un tab congelato. Questo è una preoccupazione reale per pattern come (a+)+b contro lunghi input di a.

Note

Perché serve un Web Worker? I motori regex dei browser non espongono un timeout, e una singola regex lenta può tenere il thread principale appeso per decine di secondi. Eseguire il matching dentro un Worker significa che possiamo fare worker.terminate() e restare reattivi.

Supporta funzionalità Perl/PCRE? No — solo ciò che JavaScript supporta. \K, gruppi atomici, quantificatori possessivi e pattern ricorsivi non fanno parte della grammatica regex JS. Lookbehind e gruppi nominati sì.

La mia regex corrisponde in questo strumento ma non nel mio codice. Controlla i flag. Il flag u cambia come alcune classi di caratteri matchano Unicode; il flag g influenza lo stato tra chiamate quando riusi l'oggetto regex.

Strumenti correlati