分几种情况说明

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

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

  1. 正则表达式中的exec和match方法的区别

    正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...

  2. JavaScript正则中\1\2的作用

    一.示例 1. 验证6个相同的数字 var reg = new RegExp(/^(\d)\1{5}/g); var a = '333333'; if(reg.test(a)) { alert('ri ...

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

    阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code:  var someText="web2.0 .net2.0"; ...

  4. javascript 正则test、exec、search、match区别?

    都可以放正则表达示 exec是RegExp类的匹配方法 match是字符串类的匹配方法 test() 方法用于检测一个字符串是否匹配某个模式.返回 true,否则返回 false. var resul ...

  5. 彻底领悟javascript中的exec与match方法

    exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示: var re=new RegExp(/\d/); re.exec( "abc4def" ); //或 ...

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

    test() var str = "cat";var reStr = /cat/;alert(reStr.test(str)); 输出为:true 它的返回值为true or fa ...

  7. javascript正则中ASCII与unicode

    正则表达式中允许直接利用ASCII和Unicode编码来查找我们相应的字符串. ASCII: 下面是检索ASCII编码在x41-x7a范围内的所有匹配的字符串.(x41,x7a为十六进制) var s ...

  8. JavaScript正则中//g, g 的作用

    //正则表达式的标准写法regexp = new RegExp(pattern[, flag]); pattern:  模板的用法是关键,也是本章的主要内容.    flag:     "i ...

  9. 正则中str.match(pattern)与pattern.exec(str)的区别

    这两个函数除了调用对象以及参数不同之外,<javascript高级程序设计>中对exec描述比较详细,对match只是说返回数组跟exec一样.书中并没有说只说了正则在非全局模式下的情况, ...

随机推荐

  1. 标准C程序设计七---02

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  2. Python入门--8--字符串

    一.创建.修改字符串 str1='呆呆 槑槑 木木 林林' str1[1] #输出呆 str1[2] #输出' ',也就是空值 str1=str[:5]+'插入乖呆 '+str1[5:] #修改字符串 ...

  3. SecureCRT 配置文件中 找密码

    打开本地电脑如下路径 C:\Users\XXX\AppData\Roaming\VanDyke\Config\Sessions 找到配置文件. 运行命令:python SecureCRTDecrypt ...

  4. python多线程(二)

    原文:http://blog.sina.com.cn/s/blog_4b5039210100esc1.html 基础不必多讲,还是直接进入python. Python代码代码的执行由python虚拟机 ...

  5. scrapy的allowed_domains设置含义

    设置allowed_domains的含义是过滤爬取的域名,在插件OffsiteMiddleware启用的情况下(默认是启用的),不在此允许范围内的域名就会被过滤,而不会进行爬取 但是有一个问题:像下面 ...

  6. 【Lucene】具体解释Lucene全文检索的信息写入与读取

    Lucene的大致结构图: 信息写入索引库的过程: 读取信息的过程: 以下是一个向索引库写入信息与读取信息的样例: public void testCreateIndex() throws Excep ...

  7. cart树剪枝

    当前子树的损失函数: $C_a(T) = C(T) + a|T|$, 其中$C(T)$为对训练数据的预测误差,$|T|$为树的叶子结点数目,反映模型的复杂度.对固定的$a$,一定存在使损失函数$C_a ...

  8. 64-bit Itanium与x64

    64-bit Itanium是什么意思 64-bit Itanium,指的是intel 安腾处理器,intel安腾处理器是Intel的某一代处理器,当然是在酷睿(即core)这一代之前出来的. ora ...

  9. 转: memcached Java客户端spymemcached的一致性Hash算法

    转自:http://colobu.com/2015/04/13/consistent-hash-algorithm-in-java-memcached-client/ memcached Java客户 ...

  10. [AngularJS + Unit Testing] Testing a component with requiring ngModel

    The component test: describe('The component test', () => { let component, $componentController, $ ...