JavaScript replace()第二個引數為函式時的引數
replace()函式具有替換功能,它可以具有兩個引數,第一個引數可以是要被替換的字串或者匹配要被替換字串的正規表示式,第二個引數可以是替換文字或者一個函式,下面看一下關於replace()函式的幾個程式碼例項。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str="I love antzone and you?"; console.log(str.replace("an","java"));
上面的程式碼只能夠替換字串中的第一個指定子字串。
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str="I love antzone and you?"; var reg=/an/g; console.log(str.replace(reg,"java"));
上面的程式碼可以將字串中的所有指定子字串替換掉。
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str="I love antzone and you?"; console.log(str.replace("an",function(){ return "java"} ));
上面的程式碼中,第二個引數是一個函式,可以用此函式的返回值替換字串中指定的子字串。當第二個引數為函式的時候,其實這個函式可以傳遞引數的,下面就通過程式碼例項介紹一下關於函式的引數問題。
程式碼如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> var url = "http://www.softwhy.com/forum.php?mod=viewthread&tid=14743&extra=page%3D1"; //第一引數為字串 console.group("字串"); var oneResult = url.replace("www.softwhy.com",function(){ console.log("replace輸入引數:%o",arguments); var val = /www.softwhy.com/.exec(url); console.log("exec輸出引數:%o",val); console.assert(arguments[0] === val[0]); console.assert(arguments[1] === val["index"]); console.assert(arguments[2] === val["input"]); return "antzone"; }); console.log("replace返回字串:"+oneResult); console.groupEnd("字串"); //第一引數為正規表示式 console.group("正規表示式"); var regexp_global = /[?&](\w+)=([^&]*)/g; var count = 0; var twoResult = url.replace(regexp_global,function(){ console.log("第"+(count++)+"次執行"); console.log("replace輸入引數:%o",arguments); var val = regexp_global.exec(url); console.log("exec輸出引數:%o",val); console.assert(arguments[0] === val[0]); console.assert(arguments[1] === val[1]); console.assert(arguments[2] === val[2]); console.assert(arguments[3] === val["index"]); console.assert(arguments[4] === val["input"]); return count; }); console.log("replace返回字串:"+twoResult); console.groupEnd("正規表示式"); </script> </head> <body> </body> </html>
在上面的程式碼中,分別演示了replace()函式第一引數是普通字串和正規表示式的時候,第二個函式引數傳遞引數的情況,下面分別做一下簡單的說明:
第一個引數是普通字串:
當第一個引數是普通字串的時候,那麼只會替換原字串中的第一個子字串,也就是說只會執行一次替換操作,為函式傳遞的引數和以普通字串引數作為正規表示式執行exec()函式返回的陣列的元素是相同的。
第一個引數是正規表示式:
由於篇幅原因,這裡只是擷取了一部分執行結果內容,replace()函式的第一個引數是正規表示式,並且執行的是全域性匹配,那麼第二個函式引數會多次被呼叫,每次被呼叫傳遞的引數,也是和regexp_global.exec(url)返回的陣列的元素內容是相同的。
相關文章
- 正規表示式replace()函式第二個引數$&的作用函式
- replace()第一個引數是正規表示式第二個是函式用法函式
- C#的Replace函式,使用函式作為的引數需要注意C#函式
- javascript獲取函式定義的引數個數JavaScript函式
- 物件,函式作為一個函式的引數物件函式
- Javascript函式引數求值——Thunk函式JavaScript函式
- javascript為函式設定預設引數JavaScript函式
- JavaScript函式傳遞引數JavaScript函式
- JavaScript函式引數傳遞JavaScript函式
- SQL引數資料型別text對於replace函式的引數1無效SQL資料型別函式
- 函式定義、函式的引數、函式的預設引數函式
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- 陣列作為函式引數陣列函式
- 函式引數 引數定義函式型別函式型別
- JavaScript 函式引數解構物件JavaScript函式物件
- javascript函式引數和函式內同名變數的關係JavaScript函式變數
- 關於C++引用做為函式引數和指標作為函式引數C++函式指標
- 函式作為引數傳遞函式
- javascript的函式的引數是區域性變數JavaScript函式變數
- JavaScript函式引數解構賦值JavaScript函式賦值
- 3.3.2 函式的預設引數和佔位引數 函式過載函式
- 技法3-2:當函式做為引數時的技巧函式
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- Vue-render函式的三個引數Vue函式
- 函式的引數傳遞函式
- 函式引數的 Default value函式
- 程式中的函式引數函式
- JavaScript進階系列01,函式的宣告,函式引數,函式閉包JavaScript函式
- js函式作為函式的引數程式碼例項JS函式
- TypeScript 函式可選引數和預設引數TypeScript函式
- 函式、引數、解構函式
- 函式引數詳解函式
- 【函式引數】Oracle 11g中使用“=>”顯式指明函式引數名與引數值的對應關係函式Oracle
- 【Java基礎】函式引數為物件時的記憶體管理Java函式物件記憶體
- JS 利用引數個數進行函式過載JS函式
- [思] 當需要傳遞多個不定引數時,該如何設計 JavaScript 函式?JavaScript函式
- 函式基礎和函式引數函式
- javascript給函式引數設定預設值JavaScript函式