首頁 >web前端 >js教程 >JavaScript String.replace函數參數實例說明_基礎知識

JavaScript String.replace函數參數實例說明_基礎知識

WBOY
WBOY原創
2016-05-16 17:32:281047瀏覽

Email:longsu2010 at yeah dot net
js String的replace函數的函數簽章如下:
replace(match/* 字串OR正規表示式*/, replacement/* 字串OR函數*/)
作用是將源自符字串中的match替換為replacement並傳回替換後的字串。
如果第一參數是字串就沒什麼好說的了,但是要記住此時只在源自符串替換一次match(第一次)函數就執行完成了。

所以第一個參數通常是一個正規表示式,舉例如下:
replace(/a/g, "b") // 將源自符字串中所有的a替換為b。

第二參數可以是一個字串,該字串中可以包含第一參數正規表示式的分組,舉例如下:
replace(/(a){2,2}/g, "$1b") // 將源自符字串中所有的aa替換為ab。

如果第二參數是一個函數的話,那麼函數的參數是什麼呢?舉例如下:

複製程式碼 程式碼如下:

"bbabc". )(b)/g, function(){
console.log(arguments)
});

參數將依序為:
1 、整個正規表示式符合的字元。
2、第一分組所符合的內容、第二分組所匹配的內容… 以此類推直到最後一個分組。
3、此次比對在源自符串的下標(位置)。
4、源自符字串
所以範例的輸出是

["ab", "a", "b", 2, "bbabc"]

第二參數的回傳值將會被替換到源自符字串中,因若js函數無返值那麼呼叫函數會得到undefined,所以如果第二參數無回傳值​​undefined將會被替換到源自於符字串中。
如果第一個參數是一個字串,同時第二參數是一個函數的話,那就當成第一參數是一個沒有分組的正規表示式好了,這樣就可以確定第二參數的參數了。
文中有一些表述不當之處,如「替換到源自符串中」(源自符串只是充當模板的角色,並不真正發生改變,字符串是不可改變的變量),希望不會誤導大家。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn