欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js replace() 文本替換你所不知的

 更新時(shí)間:2010年03月17日 19:30:27   作者:  
今天看了一個(gè)函數(shù),功能是把形如word-word的字符串轉(zhuǎn)化為wordWord
復(fù)制代碼 代碼如下:

//把word-word轉(zhuǎn)化為wordWord
function camelize(s){
return s.replace(/-(\w)/g, function(strMatch, p1){
return p1.toUpperCas();
});
}

這里應(yīng)用到了文本替換函數(shù)replace,他的一般語法估計(jì)大家都已經(jīng)耳熟能詳了,現(xiàn)在介紹一下當(dāng)他的第二個(gè)參數(shù)為函數(shù)時(shí)的情形。

今天我在群里發(fā)這個(gè)函數(shù)的時(shí)候,有個(gè)人反映很快,說上面的那個(gè)正則寫錯(cuò)了“/-(\w)/g”,而后很快又明白了,他的疑惑是這個(gè)“()”,其實(shí)這個(gè)括號是很必要的:

(x)匹配x,將x保存在名為$1,$2...$9的變量中,其實(shí)就是給其加一個(gè)索引,方便后面的調(diào)用。如果不加這個(gè)括號就會(huì)出錯(cuò)了:


好的,下面介紹一下函數(shù)參數(shù)的意義,為什么這個(gè)函數(shù)能夠?qū)崿F(xiàn)指定的功能呢?

ECMAScript v3 規(guī)定,replace() 方法的參數(shù) replacement 可以是函數(shù)而不是字符串。在這種情況下,每個(gè)匹配都調(diào)用該函數(shù),它返回的字符串將作為替換文本使用。該函數(shù)的第一個(gè)參數(shù)是匹配模式的字符串。接下來的參數(shù)是與模式中的子表達(dá)式匹配的字符串,可以有 0 個(gè)或多個(gè)這樣的參數(shù)。接下來的參數(shù)是一個(gè)整數(shù),聲明了匹配在 stringObject 中出現(xiàn)的位置。最后一個(gè)參數(shù)是 stringObject 本身。

看起來好像有點(diǎn)煩,舉個(gè)例子:

復(fù)制代碼 代碼如下:

camelize(www-rrr);

也就是調(diào)用一下,其實(shí)上面的strMatch值為-r,就是與正則匹配的字符串(該函數(shù)的第一個(gè)參數(shù)是匹配模式的字符串),

上面的p1的值是r,指的是緊接著-后面的r(接下來的參數(shù)是與模式中的子表達(dá)式匹配的字符串),就是我們規(guī)定的索引——“(\w)”。

好了,我想之后這個(gè)函數(shù)要執(zhí)行什么應(yīng)該能看的很清楚了,呵呵,就到這里了,歡迎補(bǔ)充提議


[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

相關(guān)文章

最新評論