変数を使用して文字列のすべての出現を置き換えるJS [重複] 質問する

変数を使用して文字列のすべての出現を置き換えるJS [重複] 質問する

文字列内のすべてのxを置き換えることはわかっていますstr.replace(/x/g, "y")が、これをやりたいのです

function name(str,replaceWhat,replaceTo){
    str.replace(/replaceWhat/g,replaceTo);
}

最初の引数で変数を使用するにはどうすればよいですか?

ベストアンサー1

コンストラクRegExpターは文字列を受け取り、そこから正規表現を作成します。

function name(str,replaceWhat,replaceTo){
    var re = new RegExp(replaceWhat, 'g');
    return str.replace(re,replaceTo);
}

replaceWhat正規表現で特別な文字が含まれている可能性がある場合は、次のようにします。

function name(str,replaceWhat,replaceTo){
    replaceWhat = replaceWhat.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
    var re = new RegExp(replaceWhat, 'g');
    return str.replace(re,replaceTo);
}

見るJavascript に RegExp.escape 関数はありますか?

おすすめ記事