replace() メソッドを複数回繰り返して JavaScript で文字列を置換するのは一般的な手法です。ただし、複数の文字列を異なる置換に置き換えようとすると、意図しない結果が生じる可能性があります。
これに対処するには、関数を利用して置換を個別に実行できます。
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]; });
mapObj は置換を定義し、正規表現は次のいずれかと一致します。キー。
ソリューションをより柔軟にするために、mapObj のキーに基づいて動的な正規表現を生成できます。これにより、関数が任意の数の置換を処理できるようになります:
var mapObj = {cat:"dog",dog:"goat",goat:"cat"}; var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); str = str.replace(re, function(matched){ return mapObj[matched]; });
ソリューションを再利用可能にするには、関数内にカプセル化できます:
function replaceAll(str,mapObj){ var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); return str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; }); }
この関数は文字列と置換マップを受け取り、変換された文字列を返します。
関数を使用するには、文字列と必要な置換を渡すだけです。
var str = "This is a test sentence."; var replaceObj = { This: "That", is: "was", a: "an" }; var result = replaceAll(str, replaceObj); console.log(result); // "That was an test sentence."
このアプローチを使用すると、JavaScript で複数の文字列置換を簡単に実行でき、各置換が確実に行われます。は正しく実行されます。
以上がJavaScript で複数の文字列を同時に置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。