国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

javascript replace()第二個參數為函數時的參數用法

2024-05-06 16:34:11
字體:
來源:轉載
供稿:網友

javascript的replace()第二個參數為函數時的參數:

replace()函數具有替換功能,它可以具有兩個參數,第一個參數可以是要被替換的字符串或者匹配要被替換字符串的正則表達式,第二個參數可以是替換文本或者一個函數,下面看一下關于replace()函數的幾個代碼實例。
代碼實例:
實例一:

<script>var str="I love jb51 and you?";console.log(str.replace("jb","java"));</script>

上面的代碼只能夠替換字符串中的第一個指定子字符串。
實例二:

<script>var str="I love jb51 and you?";var reg=/jb/g;console.log(str.replace(reg,"java"));</script>

上面的代碼可以將字符串中的所有指定子字符串替換掉。
實例三:

<script>var str="I love jb51 and you?";console.log(str.replace("jb",function(){ return "java"}));</script>

上面的代碼中,第二個參數是一個函數,可以用此函數的返回值替換字符串中指定的子字符串。當第二個參數為函數的時候,其實這個函數可以傳遞參數的,下面就通過代碼實例介紹一下關于函數的參數問題。
代碼如下:

<!DOCTYPE html><html><head><meta charset=" utf-8"><title>VeVb武林網</title><script type="text/javascript">var url = "http://m.survivalescaperooms.com/o.php?mod=viewthread&tid=14743&extra=page%3D1";//第一參數為字符串console.group("字符串");var oneResult = url.replace("m.survivalescaperooms.com",function(){ console.log("replace輸入參數:%o",arguments); var val = /m.survivalescaperooms.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 "jb51";});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)返回的數組的元素內容是相同的。

 

注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博罗县| 田林县| 山西省| 台中市| 盐山县| 仙游县| 胶南市| 垫江县| 秭归县| 航空| 厦门市| 苏州市| 揭东县| 报价| 措美县| 黎川县| 深水埗区| 灯塔市| 建水县| 尚志市| 白城市| 织金县| 山东省| 清丰县| 温宿县| 香港| 佛坪县| 东乌珠穆沁旗| 桃园县| 小金县| 贺兰县| 文山县| 定州市| 久治县| 上思县| 南皮县| 舟曲县| 民和| 三都| 右玉县| 尼勒克县|