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

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

Nov 29, 2024 am 09:44 AM

How to Perform Multiple String Replacements in JavaScript?

JavaScript での複数の文字列の置換

文字列の置換は、プログラミングにおける一般的なタスクです。 JavaScript では、 replace() メソッドを使用すると、指定された文字列の 1 つの一致を新しい文字列に置き換えることができます。ただし、複数の文字列を同時に他の複数の文字列に置き換えたい場合はどうすればよいでしょうか?

次の例を考えてみましょう:

var str = "I have a cat, a dog, and a goat.";

// Attempt to replace multiple strings with incorrect results
str = str.replace(/cat/gi, "dog");
str = str.replace(/dog/gi, "goat");
str = str.replace(/goat/gi, "cat");

// Output: "I have a cat, a cat, and a cat"
ログイン後にコピー

ご覧のとおり、これでは目的の結果が得られません。 「私は犬、ヤギ、猫を飼っています。」の結果。代わりに、「cat」のすべてのインスタンスが「dog」などに誤って置き換えられます。

具体的な解決策

望ましい結果を達成するには、各置換を処理する関数:

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];
});

// Output: "I have a dog, a goat, and a cat"
ログイン後にコピー

このアプローチでは、マップ オブジェクト (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()];
    });
}
ログイン後にコピー

この関数を使用して、任意の文字列内の複数の文字列を他の複数の文字列に置き換えることができます。

以上がJavaScript で複数の文字列置換を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

jQuery日付が有効かどうかを確認します jQuery日付が有効かどうかを確認します Mar 01, 2025 am 08:51 AM

jQuery日付が有効かどうかを確認します

jQueryは要素のパディング/マージンを取得します jQueryは要素のパディング/マージンを取得します Mar 01, 2025 am 08:53 AM

jQueryは要素のパディング/マージンを取得します

10 jQuery Accordionsタブ 10 jQuery Accordionsタブ Mar 01, 2025 am 01:34 AM

10 jQuery Accordionsタブ

10 jqueryプラグインをチェックする価値があります 10 jqueryプラグインをチェックする価値があります Mar 01, 2025 am 01:29 AM

10 jqueryプラグインをチェックする価値があります

ノードとHTTPコンソールを使用したHTTPデバッグ ノードとHTTPコンソールを使用したHTTPデバッグ Mar 01, 2025 am 01:37 AM

ノードとHTTPコンソールを使用したHTTPデバッグ

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

jQueryはscrollbarをdivに追加します jQueryはscrollbarをdivに追加します Mar 01, 2025 am 01:30 AM

jQueryはscrollbarをdivに追加します

See all articles