match和exec

Posted 大大的宝剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"]
 

 

以上是关于match和exec的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 match 和 exec 比较

javascript的exec()和match()方法

正则中关于修饰符g以及exec和match区别的一个小demo

JS中正则匹配的三个方法match exec test的用法

正则表达式中match和exec, test

正则表达式之match与exec[转的楼兰之风的]