【问题标题】:In JavaScript, how do I replace multiple values in a string with replace() function without using a regular expression? [duplicate]在 JavaScript 中,如何在不使用正则表达式的情况下用 replace() 函数替换字符串中的多个值? [复制]
【发布时间】:2019-04-07 09:53:45
【问题描述】:

在工作中,我们使用了一个自定义 JavaScript 引擎,该引擎出于性能原因禁用了正则表达式。

在过去的几个小时里,我一直被这个问题困扰。我为这篇文章简化了它。假设我有这个字符串:

var str = "nice weather, nice car, nice clothes, nice tv";

我想将所有出现的“nice”替换为“ugly”。

JavaScript 的 replace() 函数就是这样做的——它将“nice”替换为“ugly”,但问题在于——如果我这样做了 str.replace("nice", "ugly"),那么 JavaScript 只会将第一次出现的“nice”替换为“ugly”。

我知道替换所有匹配项的解决方案是使用诸如/nice/g 之类的正则表达式进行全局匹配并将其作为str.replace(/nice/g, "ugly") 运行,但就我而言,我不能使用正则表达式(因为提到我们使用禁用正则表达式引擎的自定义 JavaScript 引擎。)

底线是: 我不知道如何用 replace() 函数替换字符串。我该怎么做?

【问题讨论】:

  • 我是这个网站的新手,我不知道我只有一次提问的机会:(

标签: javascript regex string replace substring


【解决方案1】:

最简单的方法是使用.split.join 的组合:

var str = "nice weather, nice car, nice clothes, nice tv";
var newStr = str.split("nice").join("ugly");
console.log(newStr);

(PS 使用“自定义 Javascript 引擎”听起来是个非常糟糕的主意。)

【讨论】:

    猜你喜欢
    • 2011-12-29
    • 2015-03-03
    • 1970-01-01
    • 2016-01-27
    • 2020-06-05
    • 2011-02-17
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多