正規表現で変数を使用するにはどうすればいいですか? 質問する

正規表現で変数を使用するにはどうすればいいですか? 質問する

JavaScript でメソッドを作成したいのですが、正規表現を使用するのが最も簡潔な方法だと思います。しかし、変数を正規表現に渡す方法がわかりません。String.replaceAll()すべてのインスタンスを に置き換える方法は既にあります"B""A"

"ABABAB".replace(/B/g, "A");

しかし、私は次のようなことをしたいのです:

String.prototype.replaceAll = function(replaceThis, withThis) {
    this.replace(/replaceThis/g, withThis);
};

しかし、明らかに、これはテキストのみを置き換えます"replaceThis"...それでは、この変数を正規表現文字列に渡すにはどうすればよいでしょうか?

ベストアンサー1

構文を使用する代わりに/\sREGEX\s/g、新しい構文を構築することができます。正規表現物体:

// variable == 'REGEX'
let re = new RegExp(String.raw`\s${variable}\s`, "g");

この方法で正規表現オブジェクトを動的に作成できます。次に、次の操作を実行します。

"mystring1".replace(re, "newstring");

古いブラウザまたはノードの場合

// variable == 'REGEX'
var re = new RegExp("\\s" + variable + "\\s", "g");
"mystring1".replace(re, "newstring");

おすすめ記事