JavaScript RegExp `d` Modifier: Tangkap Banyak Group Sekaligus
1
min read .
Updated on
Kadang saya harus nge-parse string kompleks yang punya pola berulang, misal tanggal atau harga produk. Sebelumnya ribet banget kalau mau ambil semua grup dengan nama sama. Untungnya, JavaScript sekarang punya d
modifier untuk RegExp yang bikin hidup lebih gampang.
Apa Itu d
Modifier?
Modifier d
(duplicate capturing group names) memungkinkan kita menangkap semua kemunculan dari grup bernama yang sama, bukan cuma yang terakhir. Cocok banget kalau pola berulang harus dianalisis atau debug.
const regex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/d;
(?<name>pattern)
→ grup bernamad
→ tangkap semua occurrence
Contoh Penggunaan
1. Tangkap Banyak Tanggal
const dateRegex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/d;
const dates = '2024-08-30 and 2023-12-25';
const match = dates.match(dateRegex);
console.log(match.groups);
// { year: ['2024','2023'], month: ['08','12'], day: ['30','25'] }
2. Debug Regex Kompleks (Produk & Harga)
const text = 'Product A: $10, Product B: $20, Product C: $30';
const priceRegex = /(?<product>\w+): \$?(?<price>\d+)/d;
const matches = text.match(priceRegex);
console.log(matches.groups);
// { product: ['A','B','C'], price: ['10','20','30'] }
Kapan Pakai d
Modifier?
- Multiple Captures → ambil semua grup dengan nama sama.
- Debug & Analisis → bantu trace pattern kompleks.
- Readability → regex tetap jelas meski kompleks.
Browser Compatibility
- ECMAScript 2022 → modern browsers: Chrome 93+, Firefox 103+, Edge 93+
- Tidak support di browser lawas → pakai fallback atau polyfill kalau perlu.
Kesimpulan
Gini deh, kalau kamu sering kerja sama string dengan pola berulang, d
modifier bikin regex lebih fleksibel dan mudah di-debug. Pada akhirnya, semua grup yang sama bisa langsung ditangkap, tanpa trik-trik ribet.