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");