⊗jsSpREStri 134 of 294 menu

Rentetan dengan Regex dalam JavaScript

Ungkapan biasa boleh diwakili dalam bentuk rentetan. Ini berguna dalam kes di mana anda perlu membuat sisipan pembolehubah ke dalam regex, atau membentuknya secara dinamik.

Mari kita lihat contoh. Katakan kita mempunyai rentetan berikut:

let str = 'img.png';

Katakan pada rentetan ini kita menggunakan ungkapan biasa berikut:

let reg = /\.(png|jpg)$/; let res = str.match(reg);

Mari kita tulis semula ungkapan biasa ini dalam bentuk rentetan. Ini dilakukan menggunakan objek khas RegExp:

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

Sekarang mari kita asingkan sebahagian regex ke dalam pembolehubah dan masukkan menggunakan penghubungan:

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

Dan sekarang masukkan pembolehubah menggunakan rentetan templat:

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

Dan sekarang mari kita bentukkan sebahagian regex dari array:

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

Masalah Praktikal

Asingkan nama zon domain ke dalam pembolehubah berasingan:

let reg = /^[a-z]+\.(ru|by|ua)$/; let res = reg.test(str);

Ubah suai masalah sebelumnya dengan mengambil kira bahawa zon domain disimpan dalam bentuk array:

let arr = ['ru', 'by', 'ua'];
azithymskk