亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何替換JavaScript中出現的所有字符串

如何替換JavaScript中出現的所有字符串

我有一根繩子:"Test abc test test abc test test test abc test test abc"做str = str.replace('abc', '');似乎只刪除了abc在上面的繩子里。我怎么才能取代全它的發生?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

str = str.replace(/abc/g, '');

在答復意見時:

var find = 'abc';var re = new RegExp(find, 'g');str = str.replace(re, '');

作為對單擊“向上投票”如果是這樣的話,你可以把它簡化得更簡單:

function replaceAll(str, find, replace) {
    return str.replace(new RegExp(find, 'g'), replace);}

注:正則表達式包含特殊(元)字符,因此盲目地在find函數,無需預處理就可以轉義這些字符。這包括在Mozilla開發人員網絡正則表達式JavaScript指南,其中它們呈現以下實用函數:

function escapeRegExp(str) {
    return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");}

所以為了讓replaceAll()函數更安全,如果您還包括以下內容,則可以將其修改為escapeRegExp:

function replaceAll(str, find, replace) {
    return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);}


查看完整回答
反對 回復 2019-07-13
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

注意:不要在實際代碼中使用這個。

作為簡單文字字符串的正則表達式的替代方法,可以使用

str = "Test abc test test abc test...".split("abc").join("");

一般的模式是

str.split(search).join(replacement)

在某些情況下,這比使用replaceAll還有一個正則表達式,但在現代瀏覽器中似乎不再是這樣了。因此,這實際上應該僅作為一種快速攻擊來使用,以避免需要轉義正則表達式,而不是在實際代碼中。


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 669 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號