日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > web前端 > jscript > 也說JavaScript中String類的replace函數(shù)

也說JavaScript中String類的replace函數(shù)

來源:程序員人生   發(fā)布時(shí)間:2013-11-18 02:35:36 閱讀次數(shù):2696次

最近讀了sharpxiajun的博文《javascript筆記--String類replace函數(shù)的一些事》,感覺寫的很好,很有幫助。對(duì)回調(diào)函數(shù)的參數(shù)說明也很準(zhǔn)確:

第一個(gè)參數(shù)是匹配到的字符串,最后一個(gè)是原字符串,倒數(shù)第二個(gè)參數(shù)是匹配到的字符串的在原字符串索引的起始位。

但我很好奇,第二到倒數(shù)第三之間的參數(shù)又是些什么呢?其實(shí),W3school已經(jīng)給出了答案:

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串。其語法為:

stringObject.replace(regexp/substr,replacement)

replacement 可以是字符串,也可以是函數(shù)。如果它是字符串,那么每個(gè)匹配都將由字符串替換。
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 本身。

顯然,replacement函數(shù)的第二到倒數(shù)第三之間的參數(shù)是“與模式中的子表達(dá)式匹配的字符串”,具體個(gè)數(shù)起決于子表達(dá)式的個(gè)數(shù)。

據(jù)此,我們舉兩個(gè)例子來對(duì)比說明:

例1:

字符串:"CJ9080"

匹配模式為:/CJ[0-9]{2}/g  (無子表達(dá)式)

預(yù)期結(jié)果:

replacement函數(shù)有3個(gè)參數(shù),分別為:
【0】“CJ90”
【1】0
【2】“CJ9080”

測試代碼:

function replaceStr(s) {
return s.replace(/CJ[0-9]{2}/g,
function(){
for (var i = 0, len = arguments.length; i < len; i++) {
console.info("Argument " + i + ": " + arguments[i]);
}
});
};

運(yùn)行結(jié)果:

例2:

字符串:"CJ9080"

匹配模式為:/((CJ)([0-9]{2}))/g  (有3個(gè)子表達(dá)式:(CJ[0-9]{2}), (CJ), ([0-9]{2}))

預(yù)期結(jié)果:

replacement函數(shù)有6個(gè)參數(shù),分別為:
【0】 "CJ90"
【1】 "CJ90"
【2】 "CJ"
【3】 "90"
【4】 0
【5】 "CJ9080"

測試代碼:

function replaceStr(s) {
return s.replace(/((CJ)([0-9]{2}))/g,
function(){
for (var i = 0, len = arguments.length; i < len; i++) {
console.info("Argument " + i + ": " + arguments[i]);
}
});
};

運(yùn)行結(jié)果:

顯然,兩個(gè)測試?yán)咏Y(jié)果均與預(yù)期一致。說明,當(dāng)replace函數(shù)的replacement為函數(shù)時(shí),此函數(shù)的參數(shù)各位確如W3school所言:

【0】:匹配模式的字符串;
【1 - (length - 3)】: 與模式中的子表達(dá)式匹配的字符串, 0個(gè)或多個(gè);
【length - 2】:匹配串在原字符串的索引起始位置,從0開始;
【length - 1】:原字符串。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产精品久久久一区麻豆最新章节 | 在线二区| 九九热在线精品视频 | 美女wwwwwwwwww | 国产精品久久久av久久久 | 午夜精品一区二区三区在线播放 | 美女一区 | 亚洲电影一区 | 国产97在线 | 免费 | 一级黄色国产片 | 日本一区二区三区视频在线播放 | 亚洲日本综合 | 中文字幕国产一区二区三区 | 成人性视频免费网站 | 欧美成人r级一区二区三区 欧美午夜精品一区 | 国产一区二区三区片 | 中文在线а√天堂官网 | 国产精品不卡av | 久久91精品国产91久久跳 | 黄色免费在线播放 | 免费看黄网址 | 天天操夜夜曰 | 毛片久久久 | 国产老女人精品毛片久久 | 国产嫩草影院 | 毛片基地黄久久久久久天堂 | 日韩专区在线播放 | 精品一区二区三区日产乱码 | 日韩精品视频一区二区三区 | 国产欧美一区二区精品久导航 | 色综合91| 欧美国产日韩精品 | 成午夜精品一区二区三区软件 | 欧洲精品码一区二区三区免费看 | 欧美中文字幕在线 | 亚洲精品免费网站 | 九九热视频在线观看 | 中文字幕日韩av在线 | 婷婷五月在线视频 | 99精品国产在热久久婷婷 | 久久九九久精品国产 |