如何替換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教程: