多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > 也說JavaScript中String類的replace函數

也說JavaScript中String類的replace函數

來源:程序員人生   發布時間:2013-11-18 02:35:36 閱讀次數:2689次

最近讀了sharpxiajun的博文《javascript筆記--String類replace函數的一些事》,感覺寫的很好,很有幫助。對回調函數的參數說明也很準確:

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

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

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

stringObject.replace(regexp/substr,replacement)

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

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

據此,我們舉兩個例子來對比說明:

例1:

字符串:"CJ9080"

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

預期結果:

replacement函數有3個參數,分別為:
【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]);
}
});
};

運行結果:

例2:

字符串:"CJ9080"

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

預期結果:

replacement函數有6個參數,分別為:
【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]);
}
});
};

運行結果:

顯然,兩個測試例子結果均與預期一致。說明,當replace函數的replacement為函數時,此函數的參數各位確如W3school所言:

【0】:匹配模式的字符串;
【1 - (length - 3)】: 與模式中的子表達式匹配的字符串, 0個或多個;
【length - 2】:匹配串在原字符串的索引起始位置,從0開始;
【length - 1】:原字符串。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品精品视频 | 亚洲五月七月丁香缴情 | 欧美多人性受xxxx喷水 | 亚洲天码中文字幕第一页 | 请看一下欧美一级毛片 | 91精品国产一区二区三区左线 | 国产婷婷高清在线观看免费 | 欧美办公室大尺度做爰视频 | 激情久久久久久久久久久 | 亚洲成人免费看 | 噜噜噜噜私人影院老湿在线观看 | 欧美日韩亚洲精品一区 | 911久久 | 亚洲精品美女视频 | 伊人伊成久久人综合网777 | 欧美特级黄色 | 亚洲高清在线观看看片 | h免费网站| 亚洲毛片免费视频 | 波多野结衣福利 | 自拍视频一区二区 | 91国内精品久久久久怡红院 | 精品久久久久久中文字幕一区 | 福利二区视频 | 亚洲欧美日韩中文综合v日本 | 国产精品久久久久久久久免费 | 国产精品中文字幕在线观看 | 亚洲 欧美 字幕 一区 在线 | 伊人啪啪网| 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 亚洲精品1区 | 黑人猛交| 精品久久久99大香线蕉 | 日本不卡免费新一二三区 | 亚洲精品成人 | 18女人水真多免费高清毛片 | 欧美 xx性 在线 | 亚洲精品永久一区 | 国产欧美亚洲精品a | 韩国春性xxxx猛交 | 国产成人综合一区人人 |