match和exec异同

  • match是字符串方法,写法为:str.match(reg)
  • exec是正则表达式方法,写法为:reg.exec(str)

match和exec在匹配成功时返回的都是数组,在没有匹配上时返回的都是null。

match和exec进行区分
  1. 当不使用全局匹配时,两者的匹配效果是一样的,仅返回第一次匹配成功的结果.(包括分组内容,匹配第一次)如
    str = "abbb34eftab0modabbbbb6";
    var reg = /a(b)+(\d+)/i;
    var arr = str.match(reg);
    console.log(arr);
    //["abbb34", "b", "34", index: 0, input: "abbb34eftab0modabbbbb6"]
  2. 使用全局匹配/g时,exec的执行结果不受影响。但是match会返回全局匹配的结果,将不在有分组匹配信息和索引等值。如:
    var s = "aaa1 bbb2 ccc3";
    var reg = /\b(\w+)(\d{1})\b/g;
    var rs_match1 = s.match(reg);
    var rs_exec1 = reg.exec(s);
    console.log("match1:",rs_match1);//["aaa1", "bbb2", "ccc3"]
    console.log("exec1:",rs_exec1);// ["aaa1", "aaa", "1", index: 0, input: "aaa1 bbb2 ccc3"]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 作为一个程序员,要出去装逼,手中必备的技能就是正则表达式。程序员的正则表达式,医生的处方和道士的鬼画符,都是...
    Layzimo阅读 3,644评论 0 6
  • --------------------------正则的作用--------------------------...
    G_whk阅读 3,818评论 1 5
  • 1. 概念 正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串做替换或者从...
    沈林生阅读 24,030评论 0 2
  • 一、正则初体验 在软件开发中,不管是Java、C#、JS、OC....基本上都会接触到正则,不过大多数人都对正则并...
    iceman_dev阅读 7,632评论 9 28
  • 首先这是一个使用UIView完成的循环动画 在动画过程中,scrollView暂时失去了他的滑动事件,并且添加在上...
    redye阅读 3,816评论 0 1