Javascript Regex: 正規表現内に変数を配置するにはどうすればいいですか? [重複] 質問する

Javascript Regex: 正規表現内に変数を配置するにはどうすればいいですか? [重複] 質問する

たとえば次のようになります。

function(input){
    var testVar = input;
    string = ...
    string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}

しかし、これはもちろん機能しません:) これを実行する方法はありますか?

ベストアンサー1

const regex = new RegExp(`ReGeX${testVar}ReGeX`);
...
string.replace(regex, "replacement");

アップデート

いくつかのコメントによると、次の点に注意することが重要です。逃げる悪意のあるコンテンツの可能性がある場合の変数(例:変数がユーザー入力から取得される場合

ES6 アップデート

2019 年には、これは通常テンプレート文字列を使用して記述され、上記のコードが更新されました。元の回答は次のとおりです。

var regex = new RegExp("ReGeX" + testVar + "ReGeX");
...
string.replace(regex, "replacement");

おすすめ記事