淺談jQuery中replace()方法
今天在讀jquery源碼時(shí),發(fā)現(xiàn)一個(gè)以前自己不曾注意過(guò)得問(wèn)題,就是replece()的第二個(gè)參數(shù)為函數(shù)時(shí)的問(wèn)題,以前只是知道replace()的第二個(gè)參數(shù)可以為函數(shù),但是不知道該怎么操作,今天看到源碼里用到了函數(shù)作為replace()的第二個(gè)參數(shù)時(shí),感覺(jué)自己讀起來(lái)比較吃力,于是準(zhǔn)備整理下這個(gè)函數(shù)...
語(yǔ)法
stringObject.replace( regexp/substr, replacement)
返回值
返回一個(gè)新的字符串,是用replacement替換了regexp的第一次匹配或所欲匹配之后得到的
當(dāng)replace()方法的參數(shù)replacement是函數(shù)時(shí),在這種情況下,每個(gè)匹配都調(diào)用該函數(shù),函數(shù)返回的字符串作為替換文本使用。該函數(shù)的第一個(gè)參數(shù)是匹配模式的字符串。接下來(lái)的參數(shù)是與模式中的子表達(dá)式匹配的字符串,可以有0個(gè)或多個(gè)這樣的參數(shù)。接下來(lái)的參數(shù)是一個(gè)整數(shù),聲明了匹配在stringObject中出現(xiàn)的位置。最后一個(gè)參數(shù)是stringObject本身。這席話是抄至w3cschool,對(duì)于現(xiàn)在的我來(lái)說(shuō)以上的那段話我看著不是很明白,也不能用自己的話來(lái)簡(jiǎn)單描述下,所以只能用實(shí)例來(lái)說(shuō)明這一切
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(第一個(gè)捕獲)
console.log( str3 );// i(第二個(gè)不捕獲組)
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();
};
時(shí)所引發(fā)的一些不明白,感覺(jué)現(xiàn)在自己對(duì)這個(gè)函數(shù)懂了的樣子
然后現(xiàn)在我又想起不知道在以前什么時(shí)候,自已在用repleace()所遇到的對(duì)于那時(shí)的我來(lái)說(shuō)是怪符號(hào),形如“$1,$2”等等?,F(xiàn)在夜來(lái)對(duì)這一問(wèn)題來(lái)做一個(gè)解答了
$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
$$直接為$符號(hào)
var string = "abc123-ii";
console.log(string.replace(/(\d)-([\da-z])/g, "$$")); // 用$符號(hào)去替換/(\d)-([\da-z])/g
以上是自己對(duì)于replace()方法使用不明確的地方,本人前端小白,如果有寫的不對(duì)的地方,或者有關(guān)于此方法更好用法的實(shí)例希望各位看官能夠分享...
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- jQuery替換節(jié)點(diǎn)用法示例(使用replaceWith方法)
- jQuery中replaceAll()方法用法實(shí)例
- jQuery中replaceWith()方法用法實(shí)例
- jQuery標(biāo)簽替換函數(shù)replaceWith()的使用例子
- jQuery下通過(guò)replace字符串替換實(shí)現(xiàn)大小圖片切換
- 從jQuery.camelCase()學(xué)習(xí)string.replace() 函數(shù)學(xué)習(xí)
- Jquery replace 字符替換實(shí)現(xiàn)代碼
- jquery replace方法去空格
相關(guān)文章
運(yùn)用jQuery定時(shí)器的原理實(shí)現(xiàn)banner圖片切換
banner圖片切換效果,在一些企業(yè)網(wǎng)站上經(jīng)常會(huì)碰到,本文運(yùn)用jQuery定時(shí)器的原理實(shí)現(xiàn)banner圖片切換,感興趣的朋友可以學(xué)習(xí)下2014-10-10分享一些常用的jQuery動(dòng)畫事件和動(dòng)畫函數(shù)
在jquery中,jquery動(dòng)畫事件和動(dòng)畫函數(shù)經(jīng)常用的到,今天小編抽時(shí)間給大家整理了些關(guān)于常用的jquery動(dòng)畫事件和動(dòng)畫函數(shù),對(duì)jquery動(dòng)畫函數(shù)和動(dòng)畫事件相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-11-11基于jquery實(shí)現(xiàn)智能表單驗(yàn)證操作
這篇文章主要為大家詳細(xì)介紹了基于jquery實(shí)現(xiàn)智能表單驗(yàn)證操作的相關(guān)資料,利用jquery實(shí)現(xiàn)了對(duì)一個(gè)表單字段格式的即時(shí)檢查,感興趣的小伙伴們可以參考一下2016-05-05IDEA配置jQuery, $符號(hào)不再顯示黃色波浪線的問(wèn)題
這篇文章主要介紹了IDEA配置jQuery, $符號(hào)不再顯示黃色波浪線的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10jQuery選擇器之基本過(guò)濾選擇器用法實(shí)例分析
這篇文章主要介紹了jQuery選擇器之基本過(guò)濾選擇器用法,結(jié)合實(shí)例形式分析了jQuery常見的基本過(guò)濾、屬性過(guò)濾、內(nèi)容過(guò)濾、子元素過(guò)濾等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02