Maison >interface Web >js tutoriel >Comment puis-je 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!