Как сделать, чтобы lodash _.replace все вхождения в строку?

Как заменить каждое вхождение строкового шаблона в строке другой строкой?

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

возврат quertyazerty

Ответ 1

вам нужно использовать RegExp с глобальным вариантом, предлагаемым lodash.

поэтому просто используйте

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

чтобы вернуть quertyquerty

Ответ 2

Вы также можете сделать

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

Ответ 3

Мне нравится lodash, но это, вероятно, одна из немногих вещей, которая проще без него.

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

Как функция полезности с некоторой проверкой ошибок:

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
}

Для полноты, если вы действительно действительно хотите использовать lodash, то, чтобы фактически заменить текст, присвойте результат переменной.

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

Литература: Как заменить все вхождения строки в JavaScript?