Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

JavaScript `String.matchAll()`: Ambil Semua Match Sekaligus

1 min read .
JavaScript `String.matchAll()`: Ambil Semua Match Sekaligus

Kadang saya harus nge-parse string yang kompleks dan butuh semua match, termasuk grup tangkapan. Sebelumnya pakai match() cuma dapat sebagian info. Untungnya, ada String.matchAll(): mengembalikan iterator semua match lengkap dengan detail grupnya.

Apa Itu String.matchAll()?

  • Mengembalikan iterator semua hasil match regex di string.
  • Bisa akses capturing groups, index, dan detail match lainnya.
  • Hanya pakai regex dengan flag g.
string.matchAll(regex);

Contoh Penggunaan

1. Basic Usage

const text = "The quick brown fox";
const regex = /(\w+)\s/g;

for (const match of text.matchAll(regex)) {
  console.log(match);
}

2. Ambil Grup Tertentu

const text = "Order #123, Order #456, Order #789";
const regex = /Order #(\d+)/g;

for (const match of text.matchAll(regex)) {
  console.log(`Found order number: ${match[1]}`);
}

3. Convert Iterator ke Array

const text = "cat bat mat";
const regex = /\b(\w+)at\b/g;
const matchesArray = [...text.matchAll(regex)];

console.log(matchesArray);

4. Named Capturing Groups

const text = "John: 123, Jane: 456";
const regex = /(?<name>\w+): (?<number>\d+)/g;

for (const match of text.matchAll(regex)) {
  console.log(`Name: ${match.groups.name}, Number: ${match.groups.number}`);
}

Bedanya dengan String.match()

  • match() → Array sederhana, tanpa detail capturing group.
  • matchAll() → Iterator lengkap, tiap match punya grup, index, dan info lengkap.

Kesimpulan

Gini deh, kalau kamu butuh semua match dengan info lengkap, matchAll() itu lifesaver. Pada akhirnya, parsing string kompleks jadi lebih gampang, rapi, dan bisa langsung dipakai buat analisis atau manipulasi data.

Lihat Juga

chevron-up