Rechercher et remplacer plus d’un mot?

J’ai besoin de changer un tas de mots différents sur une page en utilisant jQuery. C’est le code que j’ai jusqu’à présent:

(function($) { var thePage = $("body"); thePage.html(thePage.html().replace([/My Classes/g, 'My Levels'],)); })(jQuery) 

Comment modifier ce code afin de pouvoir rechercher et remplacer plus de mots? Disons que je veux aussi remplacer “chien” par “chat” et “garçon” par “fille”.

Ce que vous pourriez faire, c’est si vous enchaînez les valeurs de remplacement telles que:

 thePage.html(thePage.html().replace([/My Classes/g, 'My Levels'],)) .replace([/dog/g, 'cat'],)) .replace([/bird/g, 'pen'],)); 

MODIFIER:

Voici le code mis à jour avec ce que vous avez fourni sur jsfiddle

 (function($) { $(function(){ var thePage = $("body"); thePage.html(thePage.html().replace(/My Classes/g, 'My Levels').replace(/dog/g, 'cat').replace(/bird/g, 'pen')); }); })(jQuery)​ 

Et le lien jsfiddle:

http://jsfiddle.net/BEftd/4/

Essayez cette solution élégante d’ ici

 for (var val in array) text= text.split(val).join(array[val]); 

Vous pouvez définir un tableau de paires clé-valeur représentant votre recherche et remplacer les termes, puis le parcourir comme ceci. Pas besoin de jQuery!

Vous n’avez jQuery pas besoin de jQuery pour le faire, mais il est très difficile de donner une bonne réponse sans savoir ce que vous faites. Par exemple, “chien” et “garçon” peuvent apparaître dans les mots. Voulez-vous remplacer ces instances aussi, ou juste les mots entiers? Que se passe-t-il si elles sont dans des atsortingbuts – ou sont elles-mêmes des atsortingbuts ou des éléments? Y a-t-il une sorte de priorité?

Cela dit, JavaScript Ssortingng n’a aucune méthode pour remplacer plusieurs mots à la fois. Vous pouvez chaîner le .replace , ou vous pouvez implémenter quelque chose comme:

 Ssortingng.prototype.replaceMulti = function (args) { for (var x = 0; x < args.length; x++) { this = this.replace(args.from, args.to); } } thePage.html(thePage.html().replaceMulti([{from: /dog/g, to: 'cat'}]);