博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript中match方法与exec方法的异同
阅读量:5961 次
发布时间:2019-06-19

本文共 1434 字,大约阅读时间需要 4 分钟。

hot3.png

var someText="web2.0 .net2.0";var pattern=/(\w+)(\d)\.(\d)/g;var outCome_exec=pattern.exec(someText);var outCome_matc=someText.match(pattern);
str.match(reg);reg.exec(str);

如上段代码所示,两者的调用方式不同,match方法是字符串调用的方法,而exec方法是正则表达式对象调用的方法;

两者的返回结果都是数组,既有相同之处也有不同之处。

当正则表达式没有g时,两者返回结果一致,请看下段代码:

var someText="web2.0 .net2.0";var pattern=/(\w+)(\d)\.(\d)/;var outCome_exec=pattern.exec(someText);var outCome_matc=someText.match(pattern);console.log(outCome_exec[0],outCome_exec[1]);//web2.0 webconsole.log(outCome_matc[0],outCome_matc[1]);//web2.0 web

当没有加g时

两者都只是搜索到第一个匹配项后就返回匹配到的值存在数组的下标为0的位置;

其余位置分别放置正则表达式中特别选中的数据;

并且index属性值均为第一个匹配项的下标位置;

下段代码为返回的数组模式和属性值:

//arr:[kword,$1,$2,...]console.log(outCome_exec.index);//0console.log(outCome_matc.index);//0console.log(pattern.lastIndex);//0

当正则表达式加上g时

match返回装有所有匹配到的值的数组,但是没有index属性,返回的数组如下:

arr:[kword1,kword2,kword3,...]

exec则是依次查找str中符合reg要求的第一个关键词,通过reg.lastIndex属性控制下一次查找的位置

循环调用exec

执行分3步:

1、将本次找到的关键词保存在数组的第一个元素  arr:[kword,$1,$2]

2、将本次找到的关键词的位置保存在index  arr.index

3、将reg对象的lastIndex属性设置为index之后,reg.lastIndex规定下次从哪个位置开始

每次返回的数组即是arr:[kword,$1,$2];

代码如下:

var someText="web2.0 net2.0";var pattern=/(\w+)(\d)\.(\d)/g;//加gvar result;while((result=pattern.exec(someText))!==null){  console.log(result[0]);//web2.0     net2.0  console.log(result[1]);//web        net  console.log(result.index);//0       7  console.log(pattern.lastIndex);//6  13}

 

转载于:https://my.oschina.net/wangch5453/blog/679409

你可能感兴趣的文章
MongoDB使用中的一些问题
查看>>
play02-Getting started-Creating a new application
查看>>
系统架构
查看>>
UITableView是不会响应touchesBegan:方法的
查看>>
Computer-memory
查看>>
redis 实践笔记(初步)
查看>>
背道而驰or殊途同归?区块链与云计算未来趋势
查看>>
Spring整合JMS(四)——事务管理
查看>>
设计模式学习笔记(七)之模板方法模式(Template Method)
查看>>
论程序员第一份工作该怎么走
查看>>
我的友情链接
查看>>
项目管理师复习心得:下午案例的解题注意要点
查看>>
Hadoop内核调整
查看>>
我的友情链接
查看>>
主流原型工具可用性测试横向比较
查看>>
我的友情链接
查看>>
Guava——使用Preconditions做参数校验
查看>>
iSCSI存储用作Proxmox VE的LVM共享存储
查看>>
网络营销——关键词竞争度分析
查看>>
Sonnet Suite Pro v11.52-ISO 1CD(三维高频电子设计)
查看>>