⊗jsSpREStri 134 of 294 menu

Řetězec s regulárním výrazem v JavaScriptu

Regulární výrazy lze reprezentovat jako řetězce. To je užitečné v případě, kdy potřebujete vkládat proměnné do regulárních výrazů nebo je vytvářet dynamicky.

Podívejme se na příklad. Předpokládejme, že máme následující řetězec:

let str = 'img.png';

Předpokládejme, že na tento řetězec aplikujeme následující regulární výraz:

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

Přepišme tento regulární výraz do podoby řetězce. To se provádí pomocí speciálního objektu RegExp:

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

Nyní vyjmeme část regulárního výrazu do proměnné a vložíme ji pomocí řetězení:

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

A nyní vložme proměnnou pomocí šablonových řetězců:

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

A nyní vytvoříme část regulárního výrazu z pole:

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

Praktické úlohy

Vytáhněte názvy doménových zón do samostatné proměnné:

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

Upravte předchozí úlohu s ohledem na to, že doménové zóny jsou uloženy jako pole:

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