当前位置: 首页 > 知识库问答 >
问题:

如何替换一个字符串在JavaScript中出现的所有情况?

姜明贤
2023-03-14

我的JavaScript代码中有这个字符串:

"Test abc test test abc test test test abc test test abc"

做:

str = str.replace('abc', '');

似乎只删除上面字符串中第一个出现的abc

我如何替换它的所有出现?

共有1个答案

端木兴国
2023-03-14

更新:在大多数流行浏览器的最新版本中,您可以使用replaceall,如下所示:

let result = "1 abc 2 abc 3".replaceAll("abc", "xyz");
// `result` is "1 xyz 2 xyz 3"

但是首先检查Can I use或另一个兼容性表,以确保您的目标浏览器首先添加了对它的支持。

对于节点和与较旧/非当前浏览器的兼容性:

注意:不要在性能关键代码中使用以下解决方案。

作为对简单文字字符串正则表达式的替代,您可以使用

str = "Test abc test test abc test...".split("abc").join("");

一般的模式是

str.split(search).join(replacement)

在某些情况下,这比使用replaceAll和正则表达式更快,但在现代浏览器中似乎不再是这样了。

基准:https://jsperf.com/replace-all-vs-split-join

结论:如果您有一个性能关键的用例(例如处理数百个字符串),请使用Regexp方法。但是对于大多数典型的用例来说,这是非常值得的,不必担心特殊字符。

 类似资料:
  • 问题内容: 我有这个字符串: 正在做: 似乎只删除了上面字符串中的第一个匹配项。 如何替换 所有 出现的内容? 问题答案: 注意:请勿在对性能有要求的代码中使用此代码。 作为简单文字字符串的正则表达式的替代方法,您可以使用 一般模式是 在某些情况下,它过去比使用和正则表达式要快,但是在现代浏览器中,情况似乎不再如此。 结论:如果您有性能至关重要的用例(例如,处理数百个字符串),请使用Regexp方

  • 问题内容: 我正在读csv到: 我想用空字符串替换该行的第8个元素中的所有匹配项。该功能不起作用。 有一个更好的方法吗? 问题答案: 问题是您对的结果不做任何事情。在Python中,字符串是不可变的,因此任何处理字符串的操作都将返回新字符串,而不是修改原始字符串。

  • 问题内容: 我试图在不区分大小写的另一个字符串中查找一个字符串所有出现的位置。 例如,给定字符串: 和搜索字符串,我想获取数组: 这两个字符串都是变量-即,我无法对它们的值进行硬编码。 我认为对于正则表达式来说这是一件容易的事,但是在努力寻找一个可行的表达式后,我却没有运气。 我找到了使用来完成此操作的示例,但是肯定有一种更简洁的方法可以完成此操作吗? 问题答案: var str = “I lea

  • 问题内容: 如何替换字符串(字符串以上)中的所有字符,应该看起来像? 问题答案: 一种无需正则表达式的简单方法: https://play.golang.org/p/B3c9Ket9fp 您最初可能会想些什么: https://play.golang.org/p/nbNNFJApPp

  • 问题内容: 我想替换JavaScript字符串中所有出现的dot() 例如,我有: 我想得到:。 到目前为止,我尝试了: 但这最终将所有字符串替换为空格。 问题答案: 您需要对进行转义,因为它在正则表达式中具有“任意字符”的含义。

  • 问题内容: 如何使用JavaScript从值读取换行符并将所有换行符替换为元素? 例: 从PHP传递的变量如下: 我希望我的结果在JavaScript转换后看起来像这样: 问题答案: 这会将所有退货转换为HTML 如果您想知道什么?:的意思。它称为非捕获组。这意味着括号内的正则表达式组不会保存在内存中,以后再引用。