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的主要内容,如果未能解决你的问题,请参考以下文章
正则中关于修饰符g以及exec和match区别的一个小demo