如何让 lodash _.replace 全部出现在一个字符串中?

How make lodash _.replace all occurrence in a string?

如何用另一个字符串替换字符串中每次出现的字符串模式?

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

return quertyazerty

你必须使用 lodash 提供的 RegExp with global 选项。

所以只需使用

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

到returnquertyquerty

你也可以

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

我喜欢 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')

参考资料: How to replace all occurrences of a string in JavaScript?

Vanilla JS 完全有能力在没有 lodash 帮助的情况下完成你需要的事情。

const text = "azertyazerty"
text.replace(new RegExp("az", "g"), "qu")