JavaScriptにおける正規表現の文字列

正規表現は文字列として表現することができます。 これは、正規表現に変数を挿入したり、 動的に形成したりする必要がある場合に便利です。

例を見てみましょう。 次のような文字列があるとします:

javascriptlet str = 'img.png';

この文字列に次の正規表現を適用するとします:

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

この正規表現を文字列として書き直してみましょう。 これは特別なオブジェクト RegExp を使用して行います:

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

次に、正規表現の一部を変数に抽出し、 連結を使用して挿入してみましょう:

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

では、テンプレート文字列を使用して変数を挿入してみましょう:

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

次に、配列から正規表現の一部を形成してみましょう:

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

実践的なタスク

Задание 1

ドメインゾーンの名前を別の変数に抽出してください:

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

ドメインゾーンが配列として保存されていることを考慮して、 前のタスクを修正してください:

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