Grup Karakter dalam Ekspresi Reguler JavaScript
Ada perintah khusus yang memungkinkan untuk
memilih seluruh grup karakter sekaligus. Perintah
\d berarti digit dari 0 hingga 9.
Perintah \w menunjukkan digit, huruf Latin,
atau karakter garis bawah. Perintah \s
menunjukkan spasi atau karakter spasi:
spasi, baris baru, tabulasi.
Nilai perintah dapat dibalik dengan menulis huruf besar:
contohnya, jika \d adalah digit,
maka \D adalah bukan digit.
Contoh
Mari kita cari semua digit:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'! !! !!!'
Contoh
Pengulangan operator menganggap perintah-grup
sebagai satu kesatuan, jadi tanda kurung pengelompokan
tidak diperlukan. Dalam contoh berikut, pola pencarian
terlihat seperti ini: digit dari 0 hingga 9
satu kali atau lebih:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'! ! ! abc @@@'
Contoh
Dalam contoh berikut, pola pencarian terlihat
seperti ini: apa saja satu kali atau lebih,
tapi bukan digit dari 0 hingga 9:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'123!3!'
Contoh
Dalam contoh ini, pola pencarian terlihat seperti ini: karakter spasi satu kali:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'1!12!123!abc!@@@'
Contoh
Dalam contoh ini, pola pencarian terlihat seperti ini:
bukan karakter spasi satu kali atau lebih.
Semua substring yang dipisahkan oleh spasi akan diganti
dengan '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'! ! ! ! !'
Contoh
Dalam contoh ini, pola pencarian terlihat seperti ini:
digit atau huruf satu kali atau lebih.
Semua substring yang terdiri dari digit dan huruf
akan diganti dengan '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'! ! ! ! @@@'
Contoh
Dalam contoh ini, pola pencarian terlihat seperti ini:
bukan digit dan bukan huruf satu kali atau lebih.
Dalam kasus kita, yang termasuk dalam definisi ini adalah
'@@@' dan semua spasi (karena mereka juga
bukan digit dan bukan huruf). Perhatikan
bahwa di akhir ada satu '!' - ini adalah hasil transformasi
dari string ' @@@' - dengan
spasi di depannya:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Hasilnya, yang akan tersimpan dalam variabel adalah:
'1!12!123!Abc!'
Tugas Praktis
Diberikan string:
let str = 'a1a a2a a3a a4a a5a aba aca';
Tuliskan regex yang akan menemukan string,
di mana di tepinya terdapat huruf 'a',
dan di antaranya ada satu digit.
Diberikan string:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Tuliskan regex yang akan menemukan string,
di mana di tepinya terdapat huruf 'a',
dan di antaranya ada sejumlah digit.
Diberikan string:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Tuliskan regex yang akan menemukan string,
di mana di tepinya terdapat huruf 'a',
dan di antaranya ada sejumlah digit (termasuk
nol digit, yaitu string 'aa').
Diberikan string:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Tuliskan regex yang akan menemukan string
dengan pola berikut: di tepinya terdapat huruf
'a' dan 'b', dan di antaranya - bukan
angka dan bukan spasi.
Diberikan string:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Tuliskan regex yang akan menemukan string
dengan pola berikut: di tepinya terdapat huruf
'a' dan 'b', dan di antaranya - bukan
huruf, bukan digit, dan bukan spasi.
Diberikan string:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Tuliskan regex yang akan mengganti semua spasi
dengan '!'.