淺談jQuery中replace()方法
今天在讀jquery源碼時,發(fā)現(xiàn)一個以前自己不曾注意過得問題,就是replece()的第二個參數(shù)為函數(shù)時的問題,以前只是知道replace()的第二個參數(shù)可以為函數(shù),但是不知道該怎么操作,今天看到源碼里用到了函數(shù)作為replace()的第二個參數(shù)時,感覺自己讀起來比較吃力,于是準備整理下這個函數(shù)...
語法
stringObject.replace( regexp/substr, replacement)
返回值
返回一個新的字符串,是用replacement替換了regexp的第一次匹配或所欲匹配之后得到的
當replace()方法的參數(shù)replacement是函數(shù)時,在這種情況下,每個匹配都調(diào)用該函數(shù),函數(shù)返回的字符串作為替換文本使用。該函數(shù)的第一個參數(shù)是匹配模式的字符串。接下來的參數(shù)是與模式中的子表達式匹配的字符串,可以有0個或多個這樣的參數(shù)。接下來的參數(shù)是一個整數(shù),聲明了匹配在stringObject中出現(xiàn)的位置。最后一個參數(shù)是stringObject本身。這席話是抄至w3cschool,對于現(xiàn)在的我來說以上的那段話我看著不是很明白,也不能用自己的話來簡單描述下,所以只能用實例來說明這一切
var string = "abc123-ii";
string.replace(/(\d)-([\da-z])/g,function( str1, str2, str3,str4,str5){
console.log( str1 );// 3-i
console.log( str2 );// 3(第一個捕獲)
console.log( str3 );// i(第二個不捕獲組)
console.log( str4 );// 5(匹配在string中出現(xiàn)的位置)
console.log( str5 );// abc123-ii(string本身)
return "I";
})
以上是今天我在看jquery源碼
camelCase: function( string ) {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},
fcamelCase = function( all, letter ) {
return letter.toUpperCase();
};
時所引發(fā)的一些不明白,感覺現(xiàn)在自己對這個函數(shù)懂了的樣子
然后現(xiàn)在我又想起不知道在以前什么時候,自已在用repleace()所遇到的對于那時的我來說是怪符號,形如“$1,$2”等等?,F(xiàn)在夜來對這一問題來做一個解答了
$1,$2, $3.....表示捕獲1,2,3....
var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$1")); // 用捕獲組1(3)去替換/(\d)-([\da-z])/g
$&表示與regexp相匹配的子串
var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$&")); // 用與regexp相匹配的字串(3-i)去替換/(\d)-([\da-z])/g
$`表示位于匹配子串左側(cè)的文本
var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$`")); // 用匹配字串左側(cè)的文本(abc12)去替換/(\d)-([\da-z])/g
$'表示位于匹配子串右側(cè)的文本
var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$‘")); // 用位于匹配字串右側(cè)的文本去替換/(\d)-([\da-z])/g
$$直接為$符號
var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$$")); // 用$符號去替換/(\d)-([\da-z])/g
以上是自己對于replace()方法使用不明確的地方,本人前端小白,如果有寫的不對的地方,或者有關(guān)于此方法更好用法的實例希望各位看官能夠分享...
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
運用jQuery定時器的原理實現(xiàn)banner圖片切換
banner圖片切換效果,在一些企業(yè)網(wǎng)站上經(jīng)常會碰到,本文運用jQuery定時器的原理實現(xiàn)banner圖片切換,感興趣的朋友可以學(xué)習(xí)下2014-10-10