如何替换JavaScript中所有出现的字符串

找出替换纯JavaScript中所有出现的字符串的正确方法,从正则表达式到其他方法


使用正则表达式

这个简单的正则表达式将完成以下任务:

String.replace(/<TERM>/g, '')

这执行一个区分大小写代换。

这是一个示例,其中我替换了字符串中所有出现的“狗”一词phrase

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //“I love my ! Dogs are great”

要执行不区分大小写的替换,请使用i正则表达式中的选项:

String.replace(/<TERM>/gi, '')

例子:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/gi, '')

stripped //“I love my ! s are great”

请记住,如果字符串包含一些特殊字符,则它不能与正则表达式一起使用,因此建议使用此函数对字符串进行转义(取自MDN):

const escapeRegExp = (string) => {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\{{content}}amp;')
}

使用拆分和联接

尽管比正则表达式要慢,但是另一种解决方案是使用两个JavaScript函数。

首先是split(),它在找到模式(区分大小写)时会截断字符串,并返回带有令牌的数组:

const phrase = 'I love my dog! Dogs are great'
const tokens = phrase.split('dog')

tokens //["I love my ", “! Dogs are great”]

然后,将令牌连接到新字符串中,这次没有任何分隔符:

const stripped = tokens.join('') //"I love my ! Dogs are great"

包起来:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.split('dog').join('')

免费下载我的JavaScript初学者手册


更多js教程: