JavaScript では、replace() メソッドだけを使用して 1 回の操作で複数の文字列を他の複数の文字列に置換するのは簡単ではありません。望ましい結果を達成するには、別のアプローチが必要です。
具体的な解決策:
1 つの方法では、関数を使用して各置換を処理します。
var str = "I have a cat, a dog, and a goat."; var mapObj = { cat:"dog", dog:"goat", goat:"cat" }; str = str.replace(/cat|dog|goat/gi, function(matched){ return mapObj[matched]; });
ソリューションの一般化:
このソリューションをより柔軟にするには、動的な正規表現は、Object.keys() メソッドと対応するマップ オブジェクトを使用して生成できます。
var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); str = str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; });
マップ オブジェクトを変更することで、置換の追加や変更を簡単に行うことができます。
再利用可能な関数:
再利用可能にするために、このロジックはスタンドアロンに抽象化できます。 function:
function replaceAll(str,mapObj){ var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); return str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; }); }
この関数は、変換される文字列と必要な置換を入力として呼び出して、変更された文字列を返します。
以上がJavaScript で複数の文字列を同時に置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。