Maison >interface Web >js tutoriel >Comment puis-je remplacer plusieurs chaînes simultanément en JavaScript ?

Comment puis-je remplacer plusieurs chaînes simultanément en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 18:34:11468parcourir

How Can I Replace Multiple Strings Simultaneously in JavaScript?

Remplacer plusieurs chaînes simultanément en JavaScript

En JavaScript, remplacer plusieurs chaînes par plusieurs autres chaînes en une seule opération n'est pas simple en utilisant la méthode replace() seule. Pour obtenir le résultat souhaité, des approches alternatives sont nécessaires.

Solution spécifique :

Une méthode consiste à utiliser une fonction pour gérer chaque remplacement.

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

Généraliser la solution :

Pour rendre cette solution plus flexible, une expression régulière dynamique peut être générée à l'aide du Méthode Object.keys() et l'objet cartographique correspondant.

var re = new RegExp(Object.keys(mapObj).join("|"),"gi");
str = str.replace(re, function(matched){
  return mapObj[matched.toLowerCase()];
});

Désormais, les ajouts ou les modifications des remplacements peuvent être facilement effectués en modifiant l'objet cartographique.

Fonction réutilisable :

Pour la réutilisabilité, cette logique peut être résumée dans un fichier autonome fonction :

function replaceAll(str,mapObj){
    var re = new RegExp(Object.keys(mapObj).join("|"),"gi");

    return str.replace(re, function(matched){
        return mapObj[matched.toLowerCase()];
    });
}

Cette fonction peut être appelée avec la chaîne à transformer et les remplacements souhaités en entrée, renvoyant la chaîne modifiée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn