2017年3月15日 星期三

(js) String.match 與 Regexp.exec 會出現的差異

String.match 與 Regexp.exec 會出現的差異

主要會差在 //g (global)

String.match /g => 會補抓所有符合的項目,index 屬性消失

Regexp.exec or Regexp.exec /g => 只會抓與第一個符合項目,與捕獲組


var html = "<div class='test'><b>Hello</b> <i>world!</i></div><div class='test'><b>Hello</b> <i>world!</i></div>";

             var reg = /(div)/g;

             regList.forEach(function(reg){
                 console.dir(html.match(reg)); => [div, div, div, div]
                 console.dir(reg.exec(html)); => [div, div](target, 捕獲組)

                 console.log('-----------------');
             });

///////////////////////////////////////////////////////////////////////////////////////////