Javascript正则中的exec和match

分几种情况说明

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是字符串的方法

时间: 2024-12-08 15:19:22

Javascript正则中的exec和match的相关文章

深刻领悟javascript中的exec与match方法之异同

阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code: var someText="web2.0 .net2.0"; var pattern=/(\w+)(\d)\.(\d)/g; var outCome_exec=pattern.exec(someText); var outCome_matc=someText.match(pattern); What is outCome_exec[1] and outCome_matc[

javascript中的正则匹配函数exec(),test(),match()

test() var str = "cat";var reStr = /cat/;alert(reStr.test(str)); 输出为:true 它的返回值为true or false ; exec() var str = "a bat , a Cat , a fat cat";var reStr = /at/; var arrMatch = reStr.exec(str); 输出为:at 它的返回值为第一次匹配; match() var str = "

javascript的exec()和match()方法

转载自他人的博客,非原创 彻底领悟javascript中的exec与match方法 阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code: var someText="web2.0 .net2.0";var pattern=/(\w+)(\d)\.(\d)/g;var outCome_exec=pattern.exec(someText);var outCome_matc=someText.match(pattern); Wh

JavaScript——exec和match

题目17:Read the following javascript code: var someText="web2.0 .net2.0";var pattern=/(\w+)(\d)\.(\d)/g;var outCome_exec=pattern.exec(someText);var outCome_matc=someText.match(pattern); What is outCome_exec[1] and outCome_matc[1]? Choice A: true C

转转转---js正则表达exec与match的区别说明

正则表达式对象有两个定义方式:: 1.第一种定义: new RegExp(pattern, attributes);如var reg = new RegExp("abc","g") 其中pattern为表示表达式内容,如上表示匹配abc attributes:g,全局匹配,i不区分大小写,m执行多行匹配,用最多的为g和i 2.第二种定义:/pattern/attributes. 如:var reg = /abc/g; 正则表达的规则一些规则在此不再说明,只记录exe

javascript正则表达式exec()与match()的区别说明

本篇文章主要是对js正则表达exec与match的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 正则表达的规则一些规则在此不再说明,只记录exec和match的区别: 1.exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示: 如上定义 var reg = new RegExp("abc") ; var str = "3abc4,5abc6";reg.exec(str ); 2.match是字符串执行匹配正则表达式规则的方法

js正则表达式中test,exec,match方法的区别说明

test  test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new RegExp("1.", "&q

js中test,exec和match方法

js中test,exec和match方法 转载▼ 标签: 杂谈 分类: jsp test test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回. var str = "1a1b1c";var

JavaScript中String对象的match()、replace() 配合正则表达式使用

正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时,match()返回null,replace()返回原字符串. 正则表达式的模板对象 //标准写法 regexp = new RegExp(pattern[, flag]); pattern: 模板的用法是关键,也是本章的主要内容. flag: "i"(ignore)."g&quo