迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

替换 JavaScript 中所有匹配的字符串

作者:迹忆客 最近更新:2022/12/03 浏览次数:

要替换所有出现的字符串,请使用 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

替换 JavaScript 中所有匹配的字符串

我们将以下 2 个参数传递给 String.replace 方法:

  1. 要匹配的正则表达式。 请注意,我们使用 g (全局)标志来指定我们要匹配所有出现而不仅仅是第一个
  2. 替换字符串

如果需要以不区分大小写的方式匹配子字符串,请在 g 标志之后添加 i 标志。

const str = 'old OLD world';
const replacedAll = str.replace(/old/gi, 'new');
console.log(replacedAll); // 👉️ new new world

不区分大小写替换 JavaScript 中所有匹配的字符串

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 个参数是:

  1. 要替换的字符串
  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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便