stringObject.replace(regexp/substr,replacement) 可以參考
第一個參數:可以是RegExp對象或是字串,如果是字串那麼直接匹配字串
第二個參數:是替換的文本或是返回替換文本的函數
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> //1.第一個參數直接用字串匹配 第二個參數為文本 var str1 = 'GoodGoodStudy'; var result1 = str1.replace('Good','cctv'); console.log('result1======' + result1);//result1======cctvGoodStudy //2.第一個參數直接用字串匹配 第二個參數為返回替換文本的函數 var str2 = 'GoodGoodStudy'; var result2 = str2.replace('Good',function(str,key) { return 'cctv'; }); console.log('result2======' + result2);//result2======cctvGoodStudy //3.第一個參數用RegExp 第二個參數為文本 var str3 = 'GoodGoodStudy'; var result3 = str3.replace(/Good/g,'cctv'); console.log('result3======' + result3);//result3======cctvcctvStudy //4.第一個參數用RegExp 第二個參數為返迴文本的函數 var str4 = 'i have 98 you have 66'; var fun = function(template,data) { return template.replace(/(\d)+/g,function(str,group,firstIndex,template) { var v = data[str]; return v; }); }; var result4 = fun(str4,{98: '第一個',66: '第二個'}); console.log('result4======' + result4);//result4======i have 第一個 you have 第二個 //那麼function(str,group,firstIndex,template)四個參數是什麼意思。 //如果Regex中有分組(即有括弧)那麼有四個參數,第一個是匹配到的字串,第二個是匹配到的最後一個分組 //第三個是匹配到的字串第一個位置的索引,第四個是被匹配的字串 //如果沒有分組,那麼只有三個參數,沒有了分組這個參數。 //5.路徑中參數替換。這是一個api路徑中的{xxx}預留位置替換成參數的方法。 var str = 'http://127.0.0.1/myapi/{personCode}/{followType}/find'; var nano = function (template, data) { //該方法摘自項目:) return template.replace(/\{([\w\.]*)\}/g, function (str, key) { var keys = key.split("."); var v = data[keys.shift()]; for (var i = 0, l = keys.length; i < l; i++) { v = v[keys[i]]; } return (typeof v !== "undefined" && v !== null) ? v : ""; }); }; var strNew = nano(str,{personCode: '1654321',followType: 'C'}); console.log('strNew===' + strNew);//strNew===http://127.0.0.1/myapi/1654321/C/find //上面的正則多匹配了\. 並且在funtion裡面進行了處理,目的是可能會出現這樣的{person.code}的佔位, //那麼傳入的參數為{person:{code:1654321},followType: 'C'} </script></head><body></body></html>