Ganti Teks Secara Otomatis Pakai RegExp Replace di JavaScript

Ganti Teks Secara Otomatis Pakai RegExp Replace di JavaScript
Photo by Arnold Francisca / Unsplash

Pernah nggak sih, kamu kepikiran buat ngubah teks otomatis dalam sebuah string tanpa perlu repot-repot ngecek satu per satu?

Misalnya, kamu punya teks panjang dan pengin mengganti semua kata tertentu dengan kata lain, atau bahkan menghapus karakter yang nggak diperlukan. Nah, di JavaScript, ada cara gampang buat ini pakai Regular Expression (RegExp) dan metode replace(). Yuk, kita bahas bareng!

Apa Itu replace() di JavaScript?

replace() adalah metode bawaan JavaScript yang digunakan untuk mengganti bagian dari sebuah string dengan string lain.

Sintaks dasar:

string.replace(pola, pengganti)
  • string → teks yang mau diubah
  • pola → teks yang mau diganti (bisa string biasa atau RegExp)
  • pengganti → teks pengganti

📌 Penting: Kalau pakai string biasa, replace() cuma mengganti satu kecocokan pertama. Kalau mau mengganti semua kecocokan, pakai Regular Expression (RegExp) dengan flag g (global).

Contoh Dasar: Ganti Kata dalam String

Kita coba pakai replace() buat ganti kata dalam sebuah teks:

let teks = "Saya suka kopi";
let hasil = teks.replace("kopi", "teh");

console.log(hasil); 
// Output: "Saya suka teh"

📌 Kenapa ini kurang fleksibel?

  • replace() cuma mengganti kata pertama yang ditemukan
  • Case-sensitive (huruf besar/kecil harus sama persis)

Kalau kita coba ini:

let teks = "Saya suka kopi. Kopi adalah minuman favorit saya.";
let hasil = teks.replace("kopi", "teh");

console.log(hasil); 
// Output: "Saya suka teh. Kopi adalah minuman favorit saya."

Masalah: Kata "kopi" yang kedua nggak berubah. Gimana solusinya? Pakai RegExp! 😎

Menggunakan Regular Expression di replace()

Kalau mau ganti semua kecocokan, kita pakai RegExp dengan flag g (global search):

let teks = "Saya suka kopi. Kopi adalah minuman favorit saya.";
let hasil = teks.replace(/kopi/gi, "teh");

console.log(hasil);
// Output: "Saya suka teh. Teh adalah minuman favorit saya."

📌 Penjelasan RegExp /kopi/gi:

  • kopi → Pola yang mau dicari
  • g → Global, supaya mengganti semua kecocokan
  • i → Case-insensitive, jadi "Kopi" dan "kopi" tetap diganti

Ganti Karakter atau Simbol Tertentu

Kita juga bisa pakai replace() buat menghapus karakter tertentu. Misalnya, menghilangkan tanda baca dari teks:

let teks = "Halo, dunia! Bagaimana kabarnya?";
let hasil = teks.replace(/[,.!?]/g, ""); 

console.log(hasil);
// Output: "Halo dunia Bagaimana kabarnya"

📌 RegExp [,.!?] mencari semua tanda baca, dan kita ganti dengan string kosong ("") buat menghapusnya.

Ganti Format Teks: Ubah Tanggal ke Format Lain

Misalnya, kita punya tanggal dalam format DD-MM-YYYY, lalu mau diubah jadi YYYY/MM/DD:

let tanggal = "31-12-2024";
let hasil = tanggal.replace(/(\d{2})-(\d{2})-(\d{4})/, "$3/$2/$1");

console.log(hasil);
// Output: "2024/12/31"

📌 Penjelasan:

  • (\d{2}) menangkap dua digit pertama (31)
  • (\d{2}) menangkap dua digit kedua (12)
  • (\d{4}) menangkap empat digit terakhir (2024)
  • $3/$2/$1 menyusun ulang formatnya jadi YYYY/MM/DD

Menggunakan Fungsi di replace()

Kadang, kita butuh sesuatu yang lebih fleksibel. Misalnya, mengganti angka dalam teks dengan angka dua kali lipatnya:

let teks = "Harga barang ini adalah 50 ribu dan 100 ribu.";
let hasil = teks.replace(/\d+/g, function(angka) {
  return angka * 2;
});

console.log(hasil);
// Output: "Harga barang ini adalah 100 ribu dan 200 ribu."

📌 Penjelasan:

  • \d+ → Mencari angka di teks
  • Fungsi dalam replace() → Mengubah angka yang ditemukan jadi dua kali lipatnya

Ganti Kata dengan Sinonim Otomatis

Misalkan kita mau buat program sederhana buat mengganti kata dengan sinonimnya:

let teks = "Saya bahagia hari ini.";
let sinonim = {
  "bahagia": "senang",
  "hari ini": "sekarang"
};

let hasil = teks.replace(/\b(bahagia|hari ini)\b/g, match => sinonim[match]);

console.log(hasil);
// Output: "Saya senang sekarang."

📌 Penjelasan:

  • \b → Batas kata, supaya nggak salah ganti
  • Fungsi callback match => sinonim[match] → Mengganti kata yang cocok dengan sinonimnya

Kapan Harus Pakai replace() dengan RegExp?

Gunakan replace() dengan Regular Expression kalau kamu butuh:
Mengganti semua kecocokan dalam string
Menghapus karakter tertentu (misalnya tanda baca)
Mengganti format teks otomatis
Menggunakan fungsi buat manipulasi teks lebih fleksibel

Kalau cuma butuh ganti satu kata pertama, cukup pakai string biasa.

Kesimpulan

Fungsi replace() di JavaScript jadi lebih powerful kalau dipadukan dengan Regular Expression (RegExp). Dengan replace(), kamu bisa:
Ganti semua kata yang cocok dalam teks
Hapus karakter tertentu dari string
Ubah format teks secara otomatis
Gunakan fungsi untuk manipulasi teks yang lebih kompleks

Sekarang, cobain sendiri di kode kamu!