Pencocokan Teks Lebih Mudah dengan String Match di JavaScript

Pencocokan Teks Lebih Mudah dengan String Match di JavaScript
Photo by Tolga Ulkan / Unsplash

Pernah nggak sih, kamu punya data teks panjang, tapi cuma ingin mengambil bagian tertentu yang cocok dengan pola tertentu? Nah, di JavaScript, ada metode keren yang bisa bikin tugas ini jadi super gampang: String.match().

Metode ini nggak cuma cocok buat mencocokkan teks, tapi juga sangat powerful untuk menangkap pola tertentu dalam string menggunakan regular expression (regex). Yuk, kita bahas cara kerjanya, fitur-fitur serunya, dan gimana kamu bisa memanfaatkannya dalam proyek coding-mu!

Apa Itu match()?

match() adalah metode bawaan JavaScript yang digunakan untuk mencocokkan teks dalam string berdasarkan pola regex. Hasilnya bisa berupa array dari teks yang cocok dengan pola atau null kalau nggak ada teks yang sesuai.

Sintaks:

string.match(regex);
  • regex: Pola pencarian yang ditulis dalam bentuk regular expression.

Kenapa Pakai match()?

Ada beberapa alasan kenapa kamu perlu mengenal metode ini:

  1. Menemukan Pola dalam String: Misalnya, kamu ingin menemukan semua angka dalam sebuah kalimat.
  2. Mengambil Substring Tertentu: Cocok banget buat parsing data dari teks.
  3. Fleksibel dengan Regex: Bisa digunakan untuk pencarian sederhana hingga pencarian pola yang kompleks.

Contoh Dasar Penggunaan match()

1. Pencocokan Sederhana

Kalau kamu cuma ingin mencari teks biasa dalam string, gunakan regex tanpa opsi tambahan:

let teks = "Belajar JavaScript itu menyenangkan!";
let hasil = teks.match(/JavaScript/);
console.log(hasil);

Output:

[
  'JavaScript',
  index: 8,
  input: 'Belajar JavaScript itu menyenangkan!',
  groups: undefined
]

Hasilnya berupa array dengan teks yang cocok, posisi indeksnya, dan string asli.

2. Menemukan Semua Kemunculan

Tambahkan flag g (global) pada regex untuk menemukan semua teks yang cocok.

let teks = "JavaScript itu keren. JavaScript itu fleksibel.";
let hasil = teks.match(/JavaScript/g);
console.log(hasil);

Output:

['JavaScript', 'JavaScript']

Semua kemunculan "JavaScript" akan ditangkap dalam array.

3. Case-Insensitive Matching

Gunakan flag i untuk mengabaikan huruf besar/kecil.

let teks = "JavaScript itu keren. javascript itu fleksibel.";
let hasil = teks.match(/javascript/gi);
console.log(hasil);

Output:

['JavaScript', 'javascript']

4. Mengambil Data dengan Grup

Regex mendukung grup pencocokan menggunakan tanda kurung (). Kamu bisa mengambil bagian tertentu dari teks.

let teks = "Email saya adalah [email protected].";
let hasil = teks.match(/(\w+)@(\w+\.\w+)/);
console.log(hasil);

Output:

[
  '[email protected]',
  'example',
  'gmail.com',
  index: 17,
  input: 'Email saya adalah [email protected].',
  groups: undefined
]

Grup pertama menangkap nama pengguna (example), dan grup kedua menangkap domain (gmail.com).

Studi Kasus Penggunaan match()

1. Mengekstrak Semua Angka dari String

Misalnya, kamu punya teks berisi campuran angka dan huruf, dan ingin mengambil semua angka.

let teks = "Nomor saya adalah 12345 dan nomor teman saya adalah 67890.";
let angka = teks.match(/\d+/g); // \d+ mencocokkan angka
console.log(angka);

Output:

['12345', '67890']

2. Memvalidasi Format Data

Cocokkan string dengan pola tertentu, seperti format email.

let email = "[email protected]";
let valid = email.match(/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/);
console.log(valid ? "Email valid" : "Email tidak valid");

3. Menghitung Kata dalam String

Kamu bisa menggunakan match() untuk menghitung jumlah kata dalam sebuah string.

let teks = "Belajar JavaScript itu menyenangkan!";
let kata = teks.match(/\b\w+\b/g); // \b menandai batas kata
console.log(`Jumlah kata: ${kata.length}`);

Output:

Jumlah kata: 5

Perbedaan match() dan matchAll()

JavaScript juga punya metode serupa bernama matchAll(). Bedanya, matchAll() mengembalikan iterator untuk setiap pencocokan, bukan array langsung.

Contoh:

let teks = "JavaScript itu keren. JavaScript itu fleksibel.";
let hasil = teks.matchAll(/JavaScript/g);

for (let item of hasil) {
    console.log(item);
}

matchAll() cocok untuk kasus di mana kamu butuh detail setiap pencocokan.

Tips Menggunakan match()

  1. Pahami Regex dengan Baik: Regex adalah alat utama di balik match(). Pelajari dasar-dasarnya untuk memaksimalkan fitur ini.
  2. Gunakan Flag yang Tepat: Gunakan g untuk pencarian global, i untuk pencarian tanpa case-sensitive, dan kombinasi lainnya sesuai kebutuhan.
  3. Tangani Hasil Null: Selalu periksa apakah hasil match() adalah null sebelum mengakses array.

Kesimpulan

Fungsi match() di JavaScript adalah alat powerful untuk mencocokkan teks dalam string. Dengan mendukung regex, metode ini sangat fleksibel untuk berbagai kebutuhan, mulai dari memvalidasi data hingga mengekstrak informasi spesifik.

Kalau kamu belum pernah pakai match(), sekarang saatnya coba! Eksplorasi berbagai kemungkinan dengan regex dan lihat bagaimana metode ini mempermudah pekerjaanmu. Selamat mencoba dan happy coding!