String dengan Regex di JavaScript
Ekspresi reguler dapat direpresentasikan dalam bentuk string. Ini berguna dalam kasus di mana Anda perlu melakukan penyisipan variabel ke dalam regex, atau membentuknya secara dinamis.
Mari kita lihat contohnya. Misalkan kita memiliki string berikut:
let str = 'img.png';
Misalkan ke string ini kita terapkan ekspresi reguler berikut:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Mari kita tulis ulang ekspresi reguler ini
dalam bentuk string. Ini dilakukan dengan menggunakan
objek khusus RegExp:
let reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);
Sekarang mari kita pindahkan bagian dari regex ke dalam variabel dan sisipkan menggunakan konkatenasi:
let pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
Dan sekarang sisipkan variabel menggunakan template string:
let pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Dan sekarang mari kita bentuk bagian regex dari array:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Tugas Praktis
Pindahkan nama domain zone ke dalam variabel terpisah:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Modifikasi tugas sebelumnya dengan mempertimbangkan bahwa domain zone disimpan dalam bentuk array:
let arr = ['ru', 'by', 'ua'];