difference between match and exec
http://www.cnblogs.com/tinkbell/p/4563688.html
在工作中经常发现一些同学把这两个方法搞混,以致把自己弄的很郁闷。所以我和大家一起来探讨一下这两个方法的奥妙之处吧。
我们分以下几点来讲解:
相同点:
1.两个方法都是查找符合条件的匹配项,并以数组形式返回。
2.当没有找到匹配项时,都返回null。
3.当正则表达式包含子表达式且不包含全局标志g时,二者返回相同的数组。
示例:
var str = 'cat10,bat20,kat30';
var patten = /\w(at)\d+/;
var arr = str.match(patten);
arr[0] <=> ['cat10']
arr[1] <=> ['at']
var arr = patten.exec(str);
arr[0] <=> ['cat10']
arr[1] <=> ['at']
区别:
1.match是字符串的方法,exec是RegExp对象的方法
示例:
var str = 'cat,bat,kat';
var patten = /at/;
str.match(patten); //at
patten.exec(str); //at
2.当正则表达式带有全局标志g时,二者表现不一致。
match会返回所有符合条件的匹配项,并以数组形式返回。数组第一项存放第一个匹配项,数组第二项存放第二个匹配项...依次类推。
exec则永远返回第一个匹配项。但是当连续调用exec时,则每次的返回值都是下一个匹配项。
示例1:
var str = 'cat,bat,kat';
var patten = /at/g;
str.match(patten); //['at', 'at', 'at']
patten.exec(str); //['at']
示例2:
var str = 'cat,bat,kat';
var patten = /\w+/g;
str.match(patten); //['cat', 'bat', 'kat']
//第一次调用
patten.exec(str); //['cat']
//第二次调用
patten.exec(str); //['bat']
//第三次调用
patten.exec(str); //['kat']
3.当正则表达式包含子表达式时且包含全局标志g时,二者表现不一致。
match会返回所有符合条件的匹配项,并以数组形式返回。这时,match不会再返回子表达式的匹配项了。数组第一项存放第一个匹配项,数组第二项存放第二个匹配项...依次类推。
exec会返回子表达式的匹配项。换句话说就是,数组第一项存放整个匹配项,数组第二项存放第一个子表达式匹配项,数组第三项存放第二个子表达式匹配项...依次类推。
示例:
var str = 'cat10,bat20,kat30';
var patten = /\w(at)\d+/g;
var arr = str.match(patten); //['cat10', 'bat20', 'kat30']
var arr = patten.exec(str);
arr[0] <=> ['cat10']
arr[1] <=> ['at']
转载于:https://www.cnblogs.com/skating/p/6293109.html
difference between match and exec相关推荐
- js正则函数match、exec、test、search、replace、split使用集合
match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对 ...
- match和exec
1.基本用法 match:str.match(reg) exec:reg.exec(str) 2.比较 匹配不到返回null reg不是全局搜索,两者的返回结果是一样的数组. ['匹配到的结果' ...
- match和exec的对比
:点上面关注免费学习前端知识! RegExp对象定义了两个用于执行模式匹配操作的方法.它们的行为和String方法很类似.RegExp最主要的执行模式匹配的方法是exec(),它与String中mat ...
- javascript中match方法和exec()方法详解与深度区别(非原创)
match和exec的比较 1.match match方法属于String正则表达方法. 语法: str.match(regexp或者string) str:要进行匹配的字符串. regexp:一个 ...
- 深入javascript中的exec与match方法
视频课堂https://edu.csdn.net/course/play/7621 经典面试题,如果知晓一下题目的答案,那就没有必要往下看了. var someText="web2.0 .n ...
- PHP shell_exec()与exec()
本文翻译自:PHP shell_exec() vs exec() I'm struggling to understand the difference between shell_exec() an ...
- js exec方法详解
今天查看jquery源码的时候突然被exec方法给弄懵了,特意翻了翻资料详细了解了下. 1.定义 exec() 方法用于检索字符串中的正则表达式的匹配. 使用方法:var match = RegExp ...
- javascript 正则方法 exec()
exec()是RegExp对象的主要方法.exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组,或者在没有匹配项的情况下返回null. let reg = /apple ...
- PHP——通过下拉列表选择时间(转)
实现效果: 主页代码: <script type="text/javascript" src="jquery.min.js"></script ...
- JavaScript正则表达式快速简单的指南
Interested in learning JavaScript? Get my ebook at jshandbook.com 有兴趣学习JavaScript吗? 在jshandbook.com上 ...
最新文章
- Selenium2Lib库之鼠标事件常用关键字实战
- 串联矩阵matlab代码,Matlab串联矩阵函数【horzcat】详细解析
- flink批处理中的source以及sink介绍
- python 读取yml文件_Python 读取 yaml 配置文件 | 文艺数学君
- Mysql数据库按时间点恢复实战
- STL 之count,count_if,max,max_element,min,min_element和random_shuffle
- P3188-[HNOI2007]梦幻岛宝珠【背包】
- [水煮 ASP.NET Web API2 方法论](1-1)在MVC 应用程序中添加 ASP.NET Web API
- Material Design入门(三)
- iOS oc 线程 进程,同步异步,并发串行,来捋捋
- show tables mysql_MySQL_解析MYSQL显示表信息的方法,在用mysql时(show tables),有时候 - phpStudy...
- 【渝粤教育】电大中专计算机常用工具软件_1作业 题库
- 用python画竹子_基于Python的一个简单爬虫(糗事百科爬虫)
- TCP/IP协议头部结构与解析
- mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解
- 关于安装不上tesseract和opencv以及稀里糊涂的解决方案
- 免费高效的Linux远程工具-MobaXterm最全图文总结
- aspose-words更新域/目录(页码不准确问题)
- Linux(centos 7) 安装mysql(5.7)
- buildroot教程
热门文章
- 《DirectX 游戏开发终极指南》游戏项目编译成功的方法
- [学习官方例子]TCustomComparer
- PostgreSQL是否区分大小写
- ICLR'22 | 微软亚洲研究院深度学习领域最新研究成果一览
- AAAI 2019 Gaussian Transformer: 一种自然语言推理的轻量方法
- TF-tf.keras.layers.Embedding
- SpringCloud——服务短路
- git push 提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。的解决办法
- 深度学习-激活函数总结
- 当知识图谱遇上预训练语言模型