JavaScript String.replace函數(shù)參數(shù)實(shí)例說(shuō)明
js String的replace函數(shù)的函數(shù)簽名如下:
replace(match/* 字符串OR正則表達(dá)式 */, replacement/* 字符串OR函數(shù) */)
作用是將源自符串中的match替換為replacement并返回替換后的字符串。
如果第一參數(shù)是字符串就沒(méi)什么好說(shuō)的了,但是要記住此時(shí)只在源自符串替換一次match(第一次)函數(shù)就執(zhí)行完成了。
所以第一參數(shù)通常是一個(gè)正則表達(dá)式,舉例如下:
replace(/a/g, "b") // 將源自符串中所有的a替換為b。
第二參數(shù)可以是一個(gè)字符串,該字符串中可以包含第一參數(shù)正則表達(dá)式的分組,舉例如下:
replace(/(a){2,2}/g, "$1b") // 將源自符串中所有的aa替換為ab。
如果第二參數(shù)是一個(gè)函數(shù)的話,那么函數(shù)的參數(shù)是什么呢?舉例如下:
"bbabc".replace(/(a)(b)/g, function(){
console.log(arguments)
});
參數(shù)將依次為:
1、整個(gè)正則表達(dá)式匹配的字符。
2、第一分組匹配的內(nèi)容、第二分組匹配的內(nèi)容…… 以此類(lèi)推直到最后一個(gè)分組。
3、此次匹配在源自符串中的下標(biāo)(位置)。
4、源自符串
所以例子的輸出是
["ab", "a", "b", 2, "bbabc"]
第二參數(shù)的返回值將會(huì)被替換到源自符串中,因若js函數(shù)無(wú)返值那么調(diào)用函數(shù)會(huì)得到undefined,所以如果第二參數(shù)無(wú)返回值undefined將會(huì)被替換到源自符串中。
如果第一參數(shù)是一個(gè)字符串,同時(shí)第二參數(shù)是一個(gè)函數(shù)的話,那就當(dāng)成第一參數(shù)是一個(gè)沒(méi)有分組的正則表達(dá)式好了,這樣就可以確定第二參數(shù)的參數(shù)了。
文中有一些表述不當(dāng)之處,如“替換到源自符串中”(源自符串只是充當(dāng)模板的角色,并不真正發(fā)生改變,字符串是不可改變的變量),希望不會(huì)誤導(dǎo)大家。
- js正則表達(dá)式之replace函數(shù)用法
- javascript中的replace函數(shù)(帶注釋demo)
- Js 利用正則表達(dá)式和replace函數(shù)獲取string中所有被匹配到的文本(推薦)
- javascript中基于replace函數(shù)的正則表達(dá)式語(yǔ)法
- javascript筆記 String類(lèi)replace函數(shù)的一些事
- JavaScript使用replace函數(shù)替換字符串的方法
- 也說(shuō)JavaScript中String類(lèi)的replace函數(shù)
- 一文詳解JavaScript中的replace()函數(shù)
相關(guān)文章
簡(jiǎn)介JavaScript中toUpperCase()方法的使用
這篇文章主要介紹了JavaScript中的toUpperCase()方法的使用,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
javascript replace()第二個(gè)參數(shù)為函數(shù)時(shí)的參數(shù)用法
replace()函數(shù)具有替換功能,它可以具有兩個(gè)參數(shù),第一個(gè)參數(shù)可以是要被替換的字符串或者匹配要被替換字符串的正則表達(dá)式,第二個(gè)參數(shù)可以是替換文本或者一個(gè)函數(shù),下面看一下關(guān)于replace()函數(shù)的幾個(gè)代碼實(shí)例2016-12-12
Javascript客戶端腳本的設(shè)計(jì)和應(yīng)用
Javascript客戶端腳本的設(shè)計(jì)和應(yīng)用...2006-08-08
用js判斷頁(yè)面是否加載完成實(shí)現(xiàn)代碼
用document.onreadystatechange的方法來(lái)監(jiān)聽(tīng)狀態(tài)改變, 然后用document.readyState == “complete”判斷是否加載完成,需要的朋友可以參考下2012-12-12
javascript的數(shù)組和常用函數(shù)詳解
這篇文章主要介紹了javascript的數(shù)組和常用函數(shù)詳解,非常詳細(xì),適合新手學(xué)習(xí),需要的朋友可以參考下2014-05-05
JavaScript中g(shù)etUTCMinutes()方法的使用詳解
這篇文章主要介紹了JavaScript中g(shù)etUTCMinutes()方法的使用詳解,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
javascript標(biāo)準(zhǔn)庫(kù)(js的標(biāo)準(zhǔn)內(nèi)置對(duì)象)總結(jié)
這篇文章主要介紹了javascript標(biāo)準(zhǔn)庫(kù),標(biāo)準(zhǔn)庫(kù)指的是js的標(biāo)準(zhǔn)內(nèi)置對(duì)象,是js這門(mén)語(yǔ)言本身初始時(shí)提供的在全局范圍的對(duì)象,需要的朋友可以參考下2018-05-05
做web開(kāi)發(fā) 先學(xué)JavaScript
當(dāng)你正在尋找 web 開(kāi)發(fā)的工作時(shí),我認(rèn)為 JavaScript 是可以起步的偉大語(yǔ)言,他進(jìn)入門(mén)檻低、跨平臺(tái)、已經(jīng)成熟而且是個(gè)很好的跳板。2014-12-12

