本篇文章為大家展示了js如何全部替代一個子串為另一個子串,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到高密網(wǎng)站設(shè)計與高密網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋高密地區(qū)。
如果需要全量替換字符串,可以使用 String.prototype.replace(re, replacer)
,其中正則表達式需要開啟 global
flag
const s = 'foo foo foo'
s.replce(/foo/g, 'bar')
那如題中,是否可以使用正則表達式來替代子串
答:「不可以,因為使用子串構(gòu)建正則時,有可能有特殊字符」,如下
> 'hello. helloX hello3 '.replace(new RegExp('hello. ', 'g'), 'A')
< "AAA"
而在 javascript
中替換子串只能使用一種巧妙的辦法:str.split('foo').join('bar')
> 'hello. hello. hello. '.split('hello. ').join('A')
< "AAA"
真是一個巧(笨)妙(拙)的辦法?。。。。。?strong>「大概 TC39 也意識到了一個問題,于是出了一個新的 API」,在 ESNext
中
String.prototype.replaceAll()
'aabbcc'.replaceAll('b', '.');
// 'aa..cc'
兩種辦法
str.split('foo').join('bar')
str.replaceAll('foo', 'bar')
,在
ESNext
中,目前支持性不好上述內(nèi)容就是js如何全部替代一個子串為另一個子串,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。