JavaScript replace()的使用和裡面function()的說明__Java

來源:互聯網
上載者:User

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>



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.