在JavaScript中替換字符串的所有匹配項
了解在純JavaScript中替換字符串的所有匹配項的正確方法,從正則表達式到其他方法。
使用正則表達式
這個簡單的正則表達式可以完成任務:
1 | String.replace(/<TERM>/g, '') |
這將執行區分大小寫的替換。
以下是一個示例,我將字符串phrase
中單詞’dog’的所有匹配項替換為空字符串:
1 | const phrase = 'I love my dog! Dogs are great' |
要執行不區分大小寫的替換,請在正則表達式中使用i
選項:
1 | String.replace(/<TERM>/gi, '') |
示例:
1 | const phrase = 'I love my dog! Dogs are great' |
請記住,如果字符串包含一些特殊字符,它將無法正確處理正則表達式,因此建議使用此函數將字符串進行轉義(從MDN中取得):
1 | const escapeRegExp = (string) => { |
使用split和join
另一種解決方案,儘管比正則表達式慢,是使用兩個JavaScript函數。
第一個是split()
,它會在找到一個模式(區分大小寫)時截斷字符串,並返回一個帶有標記的數組:
1 | const phrase = 'I love my dog! Dogs are great' |
然後,將這些標記連接成一個新的字符串,這次不使用任何分隔符:
1 | const stripped = tokens.join('') //"I love my ! Dogs are great" |
總結:
1 | const phrase = 'I love my dog! Dogs are great' |
tags: [“javascipt”, “regex”, “string manipulation”]