Penguji regex
Teks pencocokan pola ekspresi reguler untuk validasi, penggantian pencarian, dan penguraian log. Uji pola dengan penyorotan langsung sebelum masuk ke kode produksi — hindari kejutan kemunduran yang dahsyat pada input pengguna.
Pola
Flag
Teks uji
Output
[0] Hello
[6] world
[12] 123
Cara menguji regex
1. Masukkan pola regex (tanpa garis miring luar atau dengan tanda).
2. Atur tanda: g global, i case insensitive, m multiline.
3. Tempel teks sampel dalam string pengujian area.
4. Tinjau kecocokan, ambil grup, dan ganti pratinjau jika tersedia.
Contoh regex
Validasi email
^[\\w.-]+@[\\w.-]+\\.\\w+$ menangkap email sederhana — tidak sempurna RFC tetapi berguna untuk formulir.
Ekstrak tanggal ISO
\\d{4}-\\d{2}-\\d{2} menemukan 2024-03-15 di baris log untuk penggantian grep.
Slugify helper
Ganti [^a-z0-9]+ dengan tanda hubung untuk slug URL dari judul string.
Ketika regex membantu
• Saat memvalidasi string terstruktur (telepon, kode pos).
• Saat mengurai log semi-terstruktur.
• Saat belajar menangkap grup dan melihat ke depan.
Kapan menghindari regex
• Saat mengurai HTML atau JSON — gunakan parser yang tepat.
• Ketika regex menjadi tidak dapat dibaca — bagi menjadi logika kode.
• Saat risiko ReDoS aktif pola yang disediakan pengguna di server — batas waktu dan panjang batas.
Kewaspadaan ReDoS
Pengukur bersarang seperti (a+)+ pada string jahat hang CPU — hindari regex pengguna di server atau gunakan mesin aman dengan batas waktu.
Validasi vs ekstrak
Pola berlabuh ^...$ memvalidasi seluruh string; unanchored menemukan substring di mana saja.
Ganti di editor
VS Code menggunakan regex JS serupa di find-replace — uji di sini lalu tempel pola.
Pertanyaan yang sering diajukan
Rasa regex yang mana?
JavaScript RegExp — Ada perbedaan PCRE (dukungan tampilan belakang bervariasi berdasarkan versi mesin).
Bendera global g?
Menemukan semua kecocokan bukan hanya yang pertama — testStateful dengan lastIndex di JS.
Keluar dari karakter khusus?
. * + ? [ ] ( ) {} | \\ ^ $ perlu keluar untuk pencocokan literal.
Tangkap grup?
Tanda kurung ( ) membuat grup bernomor dapat diakses sebagai ganti $1 $2.
Lokal?
Ya.
Multiline ^ $?
m flag membuat ^ $ batas garis kecocokan tidak seluruh string.