ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で複数の文字列を同時に置換するにはどうすればよいですか?

JavaScript で複数の文字列を同時に置換するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-29 06:04:18
オリジナル
756 人が閲覧しました

How Can I Simultaneously Replace Multiple Strings in JavaScript?

JavaScript で複数の文字列を同時に置換する

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート