match和exec

1、基本用法

  match:str.match(reg)

  exec:reg.exec(str)

2、比较

  匹配不到返回null

  reg不是全局搜索,两者的返回结果是一样的数组。    ['匹配到的结果','提取的内容1',...,'提取的内容n']

    reg全局搜索: match返回数组  ['匹配到的结果1',...,'匹配到的结果n']

         exec返回的结果不受影响。     ['匹配到的结果','提取的内容1',...,'提取的内容n'],但多次执行时匹配结果的index会改变   

3、举例

    

var reg1 = /(a)+(\d)+/,      //  至少一个a带至少1个数字,并提取
    reg2 = /(a)+(\d)+/g,
    str = "afeasfa32fefb32a567";

reg1.exec(str)   //  ["a32", "a", "2"]
str.match(reg1)  //  ["a32", "a", "2"] ,str.match(reg1,callback)

reg2.exec(str)  // ["a32", "a", "2"]
reg2.exec(str)  // ["aaaa567", "a", "7"]
reg2.exec(str)  // null
str.match(reg2)  //  ["a32","aaaa567"]

//  /(a)|(\d)+/.exec("fesf32fefb32567")  ["32",undefined,"2"]
// "fesf32fefb32567".match(/(a)|(\d)+/) ["32",undefined,"2"]
 

 

posted @ 2016-08-31 21:54  大大的宝剑  阅读(185)  评论(0编辑  收藏  举报