Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

JavaScript Lanjutan

Pelajaran 17 dari 22

Error, JSON, dan tanggal

Regex di kode: match, matchAll, dan replace

Setelah pelajaran ini kamu bisa mengambil semua kecocokan, membaca grup dari setiap kecocokan, dan mengganti teks dengan fungsi memakai method string yang menerima regex.

±14 menitDiperiksa 28 Sep 2026

Materi

Cara menulis pola, mulai dari kelas karakter, kuantor, sampai grup bernama, diajarkan di kelas Regex untuk Mencari Teks. Pelajaran ini membahas method string yang menerima pola itu. pola.test(teks) menjawab true atau false. teks.match(pola) tanpa flag g mengembalikan kecocokan pertama sebagai array: isi ke-0 teks yang cocok, isi berikutnya tangkapan grup, ditambah property index dan groups. Dengan flag g, match mengembalikan array berisi semua teks yang cocok tanpa grup. Bila tidak ada yang cocok, kedua bentuk mengembalikan null, bukan array kosong.

Untuk semua kecocokan berikut grupnya, pakai teks.matchAll(pola). Polanya wajib memakai flag g; tanpa itu, matchAll melempar TypeError: String.prototype.matchAll called with a non-global RegExp argument. Hasilnya iterator, jadi dibaca dengan for...of atau dibuka dengan spread menjadi array, dan setiap isinya berbentuk sama dengan hasil match tanpa flag g.

const log = "GET /produk 200; POST /bayar 500; GET /keranjang 404";
log.match(/\d{3}/g);        // ["200", "500", "404"]
log.match(/PUT/g);            // null
for (const m of log.matchAll(/(?<metode>[A-Z]+) (?<jalur>\/\w+)/g)) {
  console.log(m.groups.metode, m.groups.jalur, m.index);
}
// GET /produk 0, lalu POST /bayar 17, lalu GET /keranjang 34
"beras 2kg, gula 1kg".replace(/(\d+)kg/g, (cocok, angka) => `${angka * 1000} g`);
// "beras 2000 g, gula 1000 g"

Argumen kedua replace boleh berupa fungsi. Fungsi itu dipanggil sekali untuk setiap kecocokan dengan argumen teks yang cocok, lalu isi setiap grup berurutan, dan nilai kembaliannya menjadi pengganti. Cara ini dipakai ketika penggantinya harus dihitung, bukan sekadar disusun ulang dengan $1. Pola dengan flag g menyimpan posisi pencarian di property lastIndex: test dan exec yang dipanggil berulang pada objek pola yang sama melanjutkan dari posisi itu.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

const pola = /\d+/g; Apa yang dicetak console.log(pola.test("A12"), pola.test("A12"))?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke