Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Ekspresi reguler, yang dikenal sebagai "regex" atau "regexp", adalah string yang menjelaskan pola pencarian. Anda dapat menggunakan ekspresi reguler untuk memeriksa apakah string berisi pola tertentu, mengekstrak informasi dari string, dan mengganti bagian string dengan teks baru.

Pelajari sintaks dasar ekspresi reguler dan cara menggunakannya dalam JavaScript.

Sintaks Dasar Ekspresi Reguler

Ada dua cara untuk membuat ekspresi reguler dalam JavaScript: menggunakan literal ekspresi reguler dan menggunakan the RegExp konstruktor.

Literal ekspresi reguler terdiri dari pola yang diapit di antara garis miring ke depan, diikuti dengan bendera opsional.

Misalnya:

// Tanpa bendera
const regexExpression_1 = /pattern/

// Dengan bendera
const regexExpression_2 = /pattern/bendera

Bendera adalah parameter opsional yang bisa Anda tambahkan ke ekspresi reguler untuk mengubah perilakunya. Misalnya:

instagram viewer
const regexFlag = /the/g;

Itu G bendera menunjukkan bahwa ekspresi harus cocok dengan semua kejadian, bukan hanya yang pertama.

Anda juga dapat membuat ekspresi reguler menggunakan RegExp konstruktor. Misalnya:

const regexExpression = baruRegExp("Pola", "G");

Itu RegExp konstruktor mengambil dua parameter: sebuah pola—sebuah string atau literal ekspresi reguler—dan sebuah bendera.

Ada dua flag yang cukup umum yang akan Anda gunakan dengan ekspresi reguler di JavaScript:

  • G: Bendera global membuat ekspresi reguler cocok dengan semua kemunculan pola dalam string yang diberikan, bukan hanya satu kemunculan.
  • Saya: Bendera yang tidak peka huruf besar-kecil membuat ekspresi reguler mengabaikan huruf besar-kecil dari pola dan mencocokkan karakter huruf besar dan kecil dalam string yang diberikan.

Anda dapat menggunakan flag secara bersamaan dalam satu ekspresi dalam urutan apa pun. Misalnya:

const regexExpression = baruRegExp("Pola", "gi");

Ungkapan ini akan cocok dengan semua kemunculan "Pola", terlepas dari kasusnya.

Dalam ekspresi reguler, karakter tertentu, yang dikenal sebagai karakter meta, memiliki arti khusus. Anda dapat menggunakannya untuk mencocokkan jenis karakter atau pola tertentu.

Berikut adalah beberapa karakter meta yang paling umum digunakan dan artinya:

  • Karakter Wildcard (.): Karakter ini cocok dengan karakter tunggal apa pun kecuali untuk baris baru. Ini adalah alat yang berguna untuk mencocokkan pola dengan karakter yang tidak diketahui.
  • Bintang Kleene (*): Karakter ini cocok dengan nol atau lebih kejadian dari karakter atau grup sebelumnya. Ini memungkinkan karakter atau grup sebelumnya muncul beberapa kali dalam string, termasuk nol.
  • Karakter Opsional (?): Karakter ini cocok dengan nol atau satu kejadian dari karakter atau grup sebelumnya.
  • Mulai Jangkar Garis (^): Karakter ini hanya cocok dengan awal baris atau string.
  • Akhir Jangkar Garis ($): Karakter ini cocok dengan akhir baris atau string.
  • Kumpulan Karakter/Kelas ([]): Kumpulan karakter cocok dengan karakter apa pun dari kumpulan karakter dalam string. Anda mendefinisikannya menggunakan tanda kurung siku [] dan Anda dapat menentukan sekumpulan karakter tetap, karakter khusus, atau grup karakter tertentu.
  • Karakter Pergantian (|): Karakter ini cocok dengan karakter atau grup sebelumnya atau berikutnya. Cara kerjanya mirip dengan OR Operator JavaScript.
  • Mengelompokkan Karakter (()): Karakter pengelompokan memungkinkan Anda untuk mengelompokkan karakter atau sub-ekspresi, menerapkan operator sebagai satu unit, dan mengontrol urutan operasi.

Menguji String Terhadap Ekspresi Reguler dalam JavaScript

Di JavaScript, Anda dapat menguji string terhadap ekspresi reguler menggunakan beberapa metode.

Bagian ini menganggap Anda memiliki pemahaman dasar tentang ekspresi dan pola reguler. Jika Anda merasa tidak nyaman dengan ekspresi reguler, periksa panduan pemula untuk ekspresi reguler Pertama.

Metode pengujian

Itu .tes() metode mengembalikan boolean yang menunjukkan apakah ekspresi reguler cocok dengan string atau tidak. Metode ini mengambil string untuk melakukan pencarian sebagai argumen. Ini sangat berguna untuk pemeriksaan sederhana.

Misalnya:

membiarkan regex = /.com$/;
membiarkan str = "contoh.com";
menghibur.log (regex.test (str)); // BENAR

Ekspresi reguler ini cocok dengan string yang diakhiri dengan ".com".

Metode eksekusi

Itu .exec() metode mengembalikan larik yang berisi teks yang cocok dan grup yang diambil atau batal jika tidak menemukan kecocokan. Metode ini mengambil string untuk melakukan pencarian sebagai argumen. Ini berguna untuk ekspresi reguler yang lebih kompleks.

Misalnya:

membiarkan regex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
membiarkan str = "123-456-7890";
membiarkan hasil = regex.exec (str);

jika (hasil !== batal) {
menghibur.catatan(`${hasil[0]} adalah nomor telepon yang valid`);
} kalau tidak {
menghibur.catatan("Nomor telepon tidak valid");
}

Ekspresi reguler di atas cocok dengan string yang dimulai dengan " opsional(", tiga digit, dan opsional ")". Kemudian mencari opsi "-", ".", atau spasi, diikuti oleh tiga digit. Akhirnya mencari opsi "-", ".", atau spasi yang diikuti oleh empat digit di akhir string.

Ekspresi reguler ini cocok dengan nomor telepon dalam format “(xxx) xxx-xxxx”, “xxx-xxx-xxxx”, “xxx.xxx.xxxx”, atau “xxx xxx xxxx”.

Jika menemukan kecocokan, .exec() mengembalikan larik yang berisi teks yang cocok dan grup yang diambil (ditentukan oleh tanda kurung). Ini akan menyertakan setiap grup sebagai elemen tambahan dalam larik yang dikembalikannya. Ini memungkinkan Anda untuk mengakses bagian tertentu dari teks yang cocok, yang dapat membantu Anda mengekstrak informasi dari sebuah string.

Metode ganti

Itu .mengganti() metode mencari kecocokan antara ekspresi reguler dan string dan mengganti teks yang cocok dengan teks pengganti yang ditentukan. Ini adalah metode objek string, dan dibutuhkan ekspresi reguler dan string pengganti sebagai argumen.

Misalnya:

membiarkan tali = "Rubah coklat cepat melompati anjing malas.";
membiarkan ekspresi = /The/gi;
membiarkan newString = string.replace (ekspresi, "A");
menghibur.log (String baru); // "rubah coklat cepat melompati seekor anjing malas."

Contoh ini memanggil mengganti() metode pada rangkaian variabel, meneruskan ekspresi reguler, ekspresi. Ekspresi reguler akan mencocokkan semua kemunculan "The" dalam string, terlepas dari kasusnya. Panggilan ke metode ganti menginstruksikannya untuk mengganti setiap kemunculan dengan string "a".

Pertimbangan Performa Saat Menggunakan Ekspresi Reguler

Meskipun ekspresi reguler membantu mencocokkan dan memanipulasi string, ekspresi reguler juga bisa mahal dalam hal performa. Membuat pola sespesifik mungkin dan menjaganya tetap sederhana sangat penting untuk menjaga kinerjanya.