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

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

 更新時間:2011年09月22日 23:57:54   作者:  
最近讀了sharpxiajun的博文《javascript筆記--String類replace函數(shù)的一些事》,感覺寫的很好,很有幫助。
對回調(diào)函數(shù)的參數(shù)說明也很準確:
第一個參數(shù)是匹配到的字符串,最后一個是原字符串,倒數(shù)第二個參數(shù)是匹配到的字符串的在原字符串索引的起始位。
但我很好奇,第二到倒數(shù)第三之間的參數(shù)又是些什么呢?其實,W3school已經(jīng)給出了答案:
復制代碼 代碼如下:

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。其語法為:
stringObject.replace(regexp/substr,replacement)
replacement 可以是字符串,也可以是函數(shù)。如果它是字符串,那么每個匹配都將由字符串替換。
ECMAScript v3 規(guī)定,replace() 方法的參數(shù) replacement 可以是函數(shù)而不是字符串。在這種情況下,每個匹配都調(diào)用該函
數(shù),它返回的字符串將作為替換文本使用。該函數(shù)的第一個參數(shù)是匹配模式的字符串。接下來的參數(shù)是與模式中的子表達式匹配的
字符串,可以有 0 個或多個這樣的參數(shù)。接下來的參數(shù)是一個整數(shù),聲明了匹配在 stringObject 中出現(xiàn)的位置。最后一個參數(shù)
是 stringObject 本身。

顯然,replacement函數(shù)的第二到倒數(shù)第三之間的參數(shù)是“與模式中的子表達式匹配的字符串”,具體個數(shù)起決于子表達式的個數(shù)。
據(jù)此,我們舉兩個例子來對比說明:
例1:
字符串:"CJ9080"
匹配模式為:/CJ[0-9]{2}/g (無子表達式)
預期結(jié)果:
replacement函數(shù)有3個參數(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]);
}
});
};

運行結(jié)果:


例2:
字符串:"CJ9080"
匹配模式為:/((CJ)([0-9]{2}))/g (有3個子表達式:(CJ[0-9]{2}), (CJ), ([0-9]{2}))
預期結(jié)果:
replacement函數(shù)有6個參數(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]);
}
});
};

運行結(jié)果:


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

【0】:匹配模式的字符串;
【1 - (length - 3)】: 與模式中的子表達式匹配的字符串, 0個或多個;
【length - 2】:匹配串在原字符串的索引起始位置,從0開始;
【length - 1】:原字符串。

相關(guān)文章

  • 輕松掌握JavaScript中介者模式

    輕松掌握JavaScript中介者模式

    這篇文章主要幫助大家輕松掌握JavaScript中介者模式,告訴大家什么是js中介者模式?js中介者模式的作用是什么,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 基于JS實現(xiàn)限時搶購倒計時間表代碼

    基于JS實現(xiàn)限時搶購倒計時間表代碼

    本文給大家分享一段簡單的代碼基于js實現(xiàn)限時搶購倒計時間表功能,非常不錯,代碼簡單易懂,需要的的朋友參考下吧
    2017-05-05
  • 在webstorm中配置less的方法詳解

    在webstorm中配置less的方法詳解

    這篇文章主要介紹了在webstorm中配置less的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • 純JS實現(xiàn)彈性導航條效果

    純JS實現(xiàn)彈性導航條效果

    本文主要介紹了純JS實現(xiàn)彈性導航條效果的實例,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • js實現(xiàn)下載(文件流式)方法詳解與完整實例源碼

    js實現(xiàn)下載(文件流式)方法詳解與完整實例源碼

    這篇文章主要介紹了js實現(xiàn)下載(文件流式)的方法,需要的朋友可以參考下
    2022-12-12
  • 使用jsonp完美解決跨域問題

    使用jsonp完美解決跨域問題

    在項目中遇到錯誤提示“No 'Access-Control-Allow-Origin' header is present on the requested resource.”查了下度娘,這個問題和安全機制有關(guān),默認不允許跨域調(diào)用,這里記錄一下解決方案,防止以后再犯相同的錯誤。
    2014-11-11
  • 使用JavaScript為一張圖片設(shè)置備選路徑的方法

    使用JavaScript為一張圖片設(shè)置備選路徑的方法

    在做網(wǎng)頁開發(fā)的時候,有時候希望給圖片設(shè)置一個備選路徑,即,當src屬性對應(yīng)的主路徑加載失敗的時候,圖片可以馬上切換到備選路徑,怎么實現(xiàn)呢?下面通過本文給大家分享JavaScript為一張圖片設(shè)置備選路徑的方法,一起看看吧
    2017-01-01
  • uniapp中全局頁面掛載組件實戰(zhàn)過程(小程序)

    uniapp中全局頁面掛載組件實戰(zhàn)過程(小程序)

    這篇文章主要給大家介紹了關(guān)于uniapp中全局頁面掛載組件(小程序)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用uniapp具有一定的參考學習價值,需要的朋友可以參考下
    2022-12-12
  • js實現(xiàn)自動鎖屏功能

    js實現(xiàn)自動鎖屏功能

    有這么一個需求,開發(fā)了一套系統(tǒng),當用戶離開桌面或者一段時間不操作的話,需要把該系統(tǒng)所有打開頁面鎖定起來,本文就詳細的介紹一下,感興趣的可以了解一下
    2021-06-06
  • Summernote實現(xiàn)圖片上傳功能的簡單方法

    Summernote實現(xiàn)圖片上傳功能的簡單方法

    下面小編就為大家?guī)硪黄猄ummernote實現(xiàn)圖片上傳功能的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07

最新評論