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:

javascriptlet str = 'img.png';

Misalkan ke string ini kita terapkan ekspresi reguler berikut:

javascriptlet 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:

javascriptlet reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);

Sekarang mari kita pindahkan bagian dari regex ke dalam variabel dan sisipkan menggunakan konkatenasi:

javascriptlet pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);

Dan sekarang sisipkan variabel menggunakan template string:

javascriptlet pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);

Dan sekarang mari kita bentuk bagian regex dari array:

javascriptlet exts = ['png', 'jpg'];
let pat  = exts.join('|');
let reg  = new RegExp(`\.(${pat})$`);
let res  = str.match(reg);

Tugas Praktis

Задание 1

Pindahkan nama domain zone ke dalam variabel terpisah:

javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Задание 2

Modifikasi tugas sebelumnya dengan mempertimbangkan bahwa domain zone disimpan dalam bentuk array:

javascriptlet arr = ['ru', 'by', 'ua'];