TK TaskKit
Tools Developer

Tester Regex

Test regular expression JavaScript dengan highlight match, capture group, dan timeout Web Worker untuk mencegah catastrophic backtracking.

Pattern/

Ketik pattern untuk melihat rincian token-per-token.

Teks tes
Hasil
Ketik pattern dan teks tes untuk melihat match.

Input tetap di perangkat ini. Setiap tool developer di TaskKit berjalan sepenuhnya di browser kamu. Token, payload, dan teks yang di-paste tidak ditransmisikan ke server TaskKit atau pihak ketiga.

Apa yang dilakukan tool ini

Tester regular expression JavaScript dengan highlight match live, rincian capture group, dan perlindungan terhadap catastrophic backtracking. Input flag menerima set standar (g i m s u y), dan match terdaftar dengan indeks awal dan akhir mereka dan group bernama atau bernomor manapun.

Kapan menggunakannya

  • Menyusun regex terhadap sampel representatif sebelum paste-nya ke kode.
  • Mengkonfirmasi apa yang sebenarnya cocok dengan regex orang lain (dan apa yang tidak).
  • Memperketat pattern yang terlalu greedy atau terlalu longgar di production.
  • Berlatih flavor JavaScript secara khusus, karena setiap bahasa memiliki semantik yang sedikit berbeda.

Cara kerjanya

Pattern di-compile dengan new RegExp(pattern, flags) lalu dijalankan terhadap teks tes. Matching terjadi di dalam Web Worker dengan timeout 1-detik — jika pattern memicu catastrophic backtracking pada input yang disediakan, worker dihentikan dan kamu melihat error « regex took too long » alih-alih tab yang membeku. Ini adalah kekhawatiran nyata untuk pattern seperti (a+)+b terhadap input a yang panjang.

Catatan

Mengapa Web Worker dibutuhkan? Mesin regex browser tidak mengekspos timeout, dan satu regex yang lambat dapat membuat main thread hang selama puluhan detik. Menjalankan matching di dalam Worker berarti kita dapat melakukan worker.terminate() dan tetap responsif.

Apakah ini mendukung fitur Perl/PCRE? Tidak — hanya yang didukung JavaScript. \K, atomic group, possessive quantifier, dan recursive pattern bukan bagian dari grammar regex JS. Lookbehind dan named group ada.

Regex saya cocok di tool ini tapi tidak di kode saya. Periksa flag-nya. Flag u mengubah cara beberapa karakter class mencocokkan Unicode; flag g mempengaruhi state antar panggilan saat kamu menggunakan kembali objek regex.

Tools terkait

  • Pembanding — bandingkan sebelum/sesudah saat me-refactor pattern
  • Formatter JSON — untuk menguji pattern terhadap payload API