Javascript正则中的exec和match

页面导航:首页 > 网络编程 > JavaScript > Javascript正则中的exec和match

Javascript正则中的exec和match

来源: 作者: 时间:2016-02-19 09:19 【

分几种情况说明1 如果re中不是全局的也就是不带gvar str = cat3 hat4 ; var re = w+ d ; var ex = re exec(str); var mt = str match(r

分几种情况说明

1.如果re中不是全局的也就是不带g

var str = "cat3 hat4";
        var re = /\w+\d/;
        var ex = re.exec(str);
        var mt = str.match(re);
        console.log(ex);
        console.log(mt);

结果是["cat3"] 也就是说如果不带g的情况那么..这2个返回的一样 那么就是exec和match 不是全局的时候都是返回匹配到的第一个如果没有返回null

2.如果re中带g, 也就是全局的

var str = "cat3 hat4";
        var re = /\w+\d/g;
        var ex = re.exec(str);
        var mt = str.match(re);
        console.log(ex);
        console.log(mt);

结果是["cat3"] ["cat3", "hat4"] 这2个就有区别了.记住exec就算是全局的情况下也是只返回第一个与re匹配的 而match会返回所有匹配到的

3.如果re中带分组但是不带g

var str = "cat3 hat4";
        var re = /\w+(\d)/;
        var ex = re.exec(str);
        var mt = str.match(re);
        console.log(ex);
        console.log(mt);
都是["cat3", "3"] 也就是说如果带分组但是有不带g 这2个方法结果是一样的..第一个元素是匹配的 第2个开始就是分组1,,,,

4.如果re中带分组也带g

var str = "cat3 hat4";
        var re = /\w+(\d)/g;
        var ex = re.exec(str);
        var mt = str.match(re);
        console.log(ex);
        console.log(mt);

["cat3", "3"] ["cat3", "hat4"] 这次结果不同了..exec是和不带g的一样 但是match 由于是全局的所以返回就是所有匹配的 没有分组


还有他们2个exec是正则对象的方法 而match是字符串的方法

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<