js replace() 文本替換你所不知的
//把word-word轉(zhuǎn)化為wordWord
function camelize(s){
return s.replace(/-(\w)/g, function(strMatch, p1){
return p1.toUpperCas();
});
}
這里應(yīng)用到了文本替換函數(shù)replace,他的一般語法估計大家都已經(jīng)耳熟能詳了,現(xiàn)在介紹一下當(dāng)他的第二個參數(shù)為函數(shù)時的情形。
今天我在群里發(fā)這個函數(shù)的時候,有個人反映很快,說上面的那個正則寫錯了“/-(\w)/g”,而后很快又明白了,他的疑惑是這個“()”,其實這個括號是很必要的:
(x)匹配x,將x保存在名為$1,$2...$9的變量中,其實就是給其加一個索引,方便后面的調(diào)用。如果不加這個括號就會出錯了:
![]()
好的,下面介紹一下函數(shù)參數(shù)的意義,為什么這個函數(shù)能夠?qū)崿F(xiàn)指定的功能呢?
ECMAScript v3 規(guī)定,replace() 方法的參數(shù) replacement 可以是函數(shù)而不是字符串。在這種情況下,每個匹配都調(diào)用該函數(shù),它返回的字符串將作為替換文本使用。該函數(shù)的第一個參數(shù)是匹配模式的字符串。接下來的參數(shù)是與模式中的子表達式匹配的字符串,可以有 0 個或多個這樣的參數(shù)。接下來的參數(shù)是一個整數(shù),聲明了匹配在 stringObject 中出現(xiàn)的位置。最后一個參數(shù)是 stringObject 本身。
看起來好像有點煩,舉個例子:
camelize(www-rrr);
也就是調(diào)用一下,其實上面的strMatch值為-r,就是與正則匹配的字符串(該函數(shù)的第一個參數(shù)是匹配模式的字符串),
上面的p1的值是r,指的是緊接著-后面的r(接下來的參數(shù)是與模式中的子表達式匹配的字符串),就是我們規(guī)定的索引——“(\w)”。
好了,我想之后這個函數(shù)要執(zhí)行什么應(yīng)該能看的很清楚了,呵呵,就到這里了,歡迎補充提議。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
相關(guān)文章
Javascript實現(xiàn)圖片加載從模糊到清晰顯示的方法
這篇文章主要介紹了使用Javascript實現(xiàn)圖片加載從模糊到清晰顯示的方法,通俗易懂,需要的朋友可以參考下。2016-06-06
Javascript數(shù)組及類數(shù)組相關(guān)原理詳解
這篇文章主要介紹了Javascript數(shù)組及類數(shù)組相關(guān)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
三種在ES6中將非數(shù)組轉(zhuǎn)換為數(shù)組的方法詳情
這篇文章主要介紹了三種在ES6中將非數(shù)組轉(zhuǎn)換為數(shù)組的方法詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08
js實現(xiàn)內(nèi)容顯示并使用json傳輸數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)內(nèi)容顯示并使用json傳輸數(shù)據(jù)的方法,感興趣的小伙伴們可以參考一下2016-03-03
JS實現(xiàn)自動輪播圖效果(自適應(yīng)屏幕寬度+手機觸屏滑動)
這篇文章主要介紹了JS實現(xiàn)自動輪播圖效果(自適應(yīng)屏幕寬度+手機觸屏滑動),需要的朋友可以參考下2017-06-06

