replace()第一個引數是正規表示式第二個是函式用法

antzone發表於2017-04-08

本章節通過程式碼例項簡單介紹一下replace()方法,當第一個引數是正規表示式,第二個引數是函式的時候的用法。

關於replace()方法的基本用法可以參閱javascript replace()一章節。

先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var string = "abc123-ii";
var str=string.replace(/(\d)-([\da-z])/g,function(str1,str2,str3,str4,str5){
  console.log(str1);
  console.log(str2);
  console.log(str3);
  console.log(str4);
  console.log(str5);
  return "I";
})
console.log(str)

下面就對上面的程式碼做一下分析。

(1).前面的正規表示式匹配幾次,那麼就會執行幾次引數函式。

(2).每執行一次匹配類似於執行一次match()方法(我們可以認為這裡執行非全域性匹配),那麼引數函式的第一個引數就是匹配的內容,第二個引數就是第一個字表示式匹配的內容,依次類推,然後是開始匹配的位置,然後就是整個字串,也就是說將match()方法匹配返回的陣列值依次作為引數傳遞給引數函式。

看match()方法程式碼演示:

[JavaScript] 純文字檢視 複製程式碼
var string = "abc123-ii";
console.log(string.match(/(\d)-([\da-z])/));

如果想要更為全面的瞭解此函式的用法可以參閱javascript的replace()第二個引數為函式時的引數一章節。

相關文章