Bab 14
Ekspresi Reguler
Ekspresi reguler adalah objek yang dapat dibuat dengan konstruktor RegEx
atau ditulis sebagai nilai literal dengan menutupi pola di antara karakter garis miring ke depan (/
). Berikut adalah sintaksis untuk membuat ekspresi reguler:
// menggunakan konstruktor ekspresi reguler
new RegExp(pola[, tanda]);
// menggunakan literal
/pola/modifier
Tanda tersebut bersifat opsional saat membuat ekspresi reguler menggunakan literal. Contoh pembuatan ekspresi reguler yang identik menggunakan kedua metode di atas adalah sebagai berikut.
let re1 = new RegExp("xyz");
let re2 = /xyz/;
Kedua cara tersebut akan membuat objek regex dan memiliki metode dan properti yang sama. Ada kasus di mana kita mungkin perlu nilai dinamis untuk membuat ekspresi reguler, dalam hal ini, literal tidak akan berfungsi, dan kita harus menggunakan konstruktor.
Dalam kasus di mana kita ingin garis miring menjadi bagian dari ekspresi reguler, kita harus melarikan diri dari garis miring (/
) dengan menggunakan garis miring terbalik (\
).
Berbagai modifier yang digunakan untuk melakukan pencarian yang tidak memperhatikan kasus adalah:
g
- pencarian global (menemukan semua kecocokan daripada berhenti setelah kecocokan pertama)i
- pencarian yang tidak memperhatikan huruf besar kecilm
- pencocokan beberapa baris
Kurung digunakan dalam ekspresi reguler untuk menemukan rentang karakter. Beberapa di antaranya adalah:
[abc]
- temukan karakter apa pun di antara tanda kurung[^abc]
- temukan karakter apa pun, tidak ada di antara tanda kurung[0-9]
- temukan angka apa pun di antara tanda kurung[^0-9]
- temukan karakter apa pun, tidak ada di antara tanda kurung (bukan angka)(x|y)
- temukan salah satu alternatif yang dipisahkan oleh |
Metakarakter adalah karakter khusus yang memiliki makna khusus dalam ekspresi reguler. Karakter-karakter ini lebih lanjut dijelaskan di bawah ini:
Metakarakter | Deskripsi |
---|---|
. |
Cocokkan satu karakter kecuali karakter baris baru atau terminator |
\w |
Cocokkan karakter kata (karakter alfanumerik [a-zA-Z0–9_] ) |
\W |
Cocokkan karakter bukan kata (sama dengan [^a-zA-Z0–9_] ) |
\d |
Cocokkan karakter angka apa pun (sama dengan [0-9] ) |
\D |
Cocokkan karakter bukan digit |
\s |
Cocokkan karakter spasi (spasi, tab, dll.) |
\S |
Cocokkan karakter bukan spasi |
\b |
Cocokkan di awal / akhir kata |
\B |
Cocokkan tetapi bukan di awal / akhir kata |
\0 |
Cocokkan karakter NULL |
\n |
Cocokkan karakter baris baru |
\f |
Cocokkan karakter makanan bentuk |
\r |
Cocokkan karakter kembali karbon |
\t |
Cocokkan karakter tab |
\v |
Cocokkan karakter tab vertikal |
\xxx |
Cocokkan karakter yang ditentukan oleh bilangan oktal xxx |
\xdd |
Cocokkan karakter yang ditentukan oleh bilangan heksadesimal dd |
\udddd |
Cocokkan karakter Unicode yang ditentukan oleh bilangan heksadesimal dddd |
Properti dan metode yang didukung oleh RegEx tercantum di bawah ini.
Nama | Deskripsi |
---|---|
constructor |
Mengembalikan fungsi yang membuat prototipe objek RegExp |
global |
Memeriksa apakah pengubah g diatur |
ignoreCase |
Memeriksa apakah pengubah i diatur |
lastIndex |
Menentukan indeks di mana pencocokan berikutnya harus dimulai |
multiline |
Memeriksa apakah pengubah m diatur |
|
| source
| Mengembalikan teks string |
| exec()
| Uji kecocokan dan mengembalikan kecocokan pertama, jika tidak ada kecocokan maka mengembalikan null
|
| test()
| Uji kecocokan dan mengembalikan true
atau false
|
| toString()
| Mengembalikan nilai string dari ekspresi reguler |
Metode complie()
mengompilasi ekspresi reguler dan sudah tidak digunakan lagi.
Beberapa contoh ekspresi reguler ditunjukkan di sini.
let text = "The best things in life are free";
let result = /e/.exec(text); // mencari kecocokan huruf e dalam string
// Hasil: e
let helloWorldText = "Hello world!";
// Mencari "Hello"
let pola1 = /Hello/g;
let hasil1 = pola1.test(helloWorldText);
// Hasil1: true
let pola1String = pola1.toString();
// pola1String : '/Hello/g'