exec与match方法的区别

http://www.cnblogs.com/xiehuiqi220/archive/2008/11/05/1327487.html

var someText= "web2.0 .net2.0" ;

var pattern=/(\w+)(\d)\.(\d)/g;

var outCome_exec=pattern.exec(someText);

var outCome_matc=someText.match(pattern);

console.info(outCome_exec) //

Array[4]

0: "web2.0" //只返回第一个匹配结果

1: "web" //第一个括号即子表达式的匹配结果

2: "2" //第二个括号即子表达式的匹配结果

3: "0" //第三个括号即子表达式的匹配结果

index: 0 //第一个匹配的结果的索引

input: "web2.0 .net2.0" //从什么里面匹配的

length: 4 //数组长度

__proto__: Array[0]

console.info(outCome_matc)

Array[2]

  1. 0: "web2.0" //第一个匹配结果

  2. 1: "net2.0" //第二个匹配结果

  3. length: 2 //数组长度

  4. __proto__: Array[0]

-------------------------------------------

区别主要是:

一个是regExp方法,一个是字符串的方法

最重要的是:

exec:方法永远只返回第一个匹配结果 ,即便加上全局匹配g也是匹配一个,但是可以查看到分组信息

match:方法如果加上全局匹配g会返回全部匹配结果,但不能查看分组信息,不加g可以查看分组信息

上一篇:js正则函数match、exec、test、search、replace、split使用介绍集合,学习正则表达式的朋友可以参考下。


下一篇:深刻领悟javascript中的exec与match方法之异同