web-dev-qa-db-fra.com

Comment faire lodash _.replace toute occurrence dans une chaîne?

Comment remplacer chaque occurrence d'un modèle de chaîne dans une chaîne par une autre chaîne?

var text = "azertyazerty";
_.replace(text,"az","qu")

retourner quertyazerty

22
Anthony

vous devez utiliser RegExp avec l'option globale offerte par lodash.

il suffit donc d'utiliser

var text = "azertyazerty";
_.replace(text,new RegExp("az","g"),"qu")

pour retourner quertyquerty

30
Anthony

Vous pouvez aussi faire

var text = "azertyazerty";
var result = _.replace(text, /az/g, "qu");
31
mrstebo

J'adore le lodash, mais c'est probablement l'une des rares choses qui sont plus faciles sans lui.

var str = str.split(searchStr).join(replaceStr)

En tant que fonction utilitaire avec une vérification des erreurs:

var replaceAll = function (str, search, replacement) {
  var newStr = ''
  if (_.isString(str)) { // maybe add a lodash test? Will not handle numbers now.
    newStr = str.split(search).join(replacement)
  }
  return newStr
}

Pour être complet, si vous voulez vraiment vraiment utiliser lodash, alors pour remplacer réellement le texte, affectez le résultat à la variable.

var text = 'find me find me find me'
text = _.replace(text,new RegExp('find','g'),'replace')

Références: Comment remplacer toutes les occurrences d'une chaîne en JavaScript?

7
Simon Hutchison