替换 JavaScript 中所有匹配的字符串
要替换所有出现的字符串,请使用 replace()
方法,将带有 g
(全局搜索)标志的正则表达式传递给它。 例如,str.replace(/old/g, 'new')
返回一个新字符串,其中所有出现的旧字符串都替换为新字符串。
const str = 'old old world';
const replacedAll = str.replace(/old/g, 'new');
console.log(replacedAll); // 👉️ new new world
我们将以下 2 个参数传递给 String.replace
方法:
- 要匹配的正则表达式。 请注意,我们使用 g (全局)标志来指定我们要匹配所有出现而不仅仅是第一个
- 替换字符串
如果需要以不区分大小写的方式匹配子字符串,请在 g
标志之后添加 i
标志。
const str = 'old OLD world';
const replacedAll = str.replace(/old/gi, 'new');
console.log(replacedAll); // 👉️ new new world
i
标志启用不区分大小写的搜索。 有关正则表达式标志的完整列表,请查看我们的正则表达式教程。
replace
方法不会更改原始字符串,而是返回一个替换了匹配项的新字符串。 字符串在 JavaScript 中是不可变的。
另一种方法是使用更新的 replaceAll
方法。
要替换所有出现的字符串,请调用 replaceAll()
方法,将要替换的字符串和替换字符串作为参数传递给它。 例如,str.replaceAll('old', 'new')
返回一个新字符串,其中所有出现的旧字符串都替换为新字符串。
// Not Supported in IE 6-11
const str = 'old old world';
const replacedAll = str.replaceAll('old', 'new');
console.log(replacedAll); // 👉️ new new world
我们传递给 String.replaceAll
方法的 2 个参数是:
- 要替换的字符串
- 替换字符串
Internet Explorer 版本 6-11 不支持 replaceAll 方法。 如果你必须支持这个浏览器,你可以为该方法添加一个 polyfill,使用 babel 将你的代码编译为旧版本的 JavaScript,或者简单地使用 replace 方法。
如果我们必须替换所有出现的不区分大小写的字符串,我们可以将正则表达式传递给 replaceAll
方法并像我们使用 replace
方法一样使用它。
const str = 'old old world';
const replacedAll = str.replaceAll(/old/gi, 'new');
console.log(replacedAll); // 👉️ new new world
在这种情况下没有充分的理由使用 replaceAll over replace。
它采用与 replace
方法完全相同的参数,但支持它的浏览器较少。
任何时候将正则表达式传递给
replaceAll
方法时,都必须设置g
(全局)标志以匹配所有出现的地方,否则会抛出TypeError
。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法