js中, match和exec方法的区别
1. 来源分别为: string.match(reg) 和 RegExp.exec(str);
2. 区别
> 现有 字符串s1 和 正则对象 r1. 目标: 抽出s1中的所有电话号码
var s1 = "爱是方法发生说法是否18324569078放弃而且我15656783456时光是大法官17699098765";
var r1 = /({}\d{})+/g;
> string.match(reg) 方法参数为reg对象
1. 当reg为全局表达式 //g 时: 返回所有的匹配结果的组成的数组
2. 当reg为非全局表达式 // 时, 返回一个数组, 数组第一个元素为第一个与reg匹配的字符串, 余下参数为与字符串中的圆括号匹配的字符串, 还有index表示当前发生匹配的位置, input表示当前正在检索的字符串
> reg.exec(str) 方法参数为str
与match方法不同的是, 无论reg是否为全局匹配, 都返回一个数组, 该数组的结果的元素含义与match方法的非全局匹配结果的元素含义一致。 不同的是exec方法会自动维护lastIndex属性。
1. 当reg为全局匹配 //g 时, 会返回包含第一个匹配结果的数组, 然后把lastIndex属性设置为当前匹配结果的结束处的位置,
当再一次调用exec()时, 会继续从lastIndex位置开始查找, 若匹配到, 则记录修改lstIndex属性, 直到查找结果为null, 则把lastIndex设为0 ,下一轮重头查找。这种特殊行为允许我们重复的调用exec方法。
2. 当reg为费全局匹配 // 时, 每次都会返回包含第一个匹配结果的数组, 然后把lastIndex设为0,既: 每次都返回第一个匹配结果的数组。
注意: RegExp.test(str)方法表现的和exec一样, 他也会维护lastIndex属性, 重复调用返回结果为: 。。。 - true - false - true - false - 。。。
js中, match和exec方法的区别的更多相关文章
- js中toString和valueOf方法的区别
toString 方法 返回对象的字符串表示形式. 语法:objectname.toString([radix]) objectname 必需.要为其搜索字符串表示形式的对象. radix 可选.为将 ...
- js中 call() 和 apply() 方法的区别和用法详解
1.定义 每个函数都包含俩个非继承而来的方法:call() 和 apply() call 和 apply 可以用来重新定义函数的的执行环境,也就是 this 的指向:call 和 apply 都是 ...
- JS中SetTimeOut和SetInterval方法的区别?
1.setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭.由 ...
- js中callback.call()和callback()的区别
js中callback.call()和callback()的区别在js中callback.call()和callback() 有什么区别,举个例子:function a(){alert('hello! ...
- 网站开发进阶(二十)JS中window.alert()与alert()的区别
JS中window.alert()与alert()的区别 前言 alert与window.alert没什么区别,如果有人觉得有区别,那就来解释一下:所有以window.开始的语句,都可以直接把wind ...
- JS中==、===和Object.is()的区别
JS中==.===和Object.is()的区别 首先,先粗略了解一下这三个玩意儿: ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较: ===:恒等,严格比较运算符,不做类型转换 ...
- jQuery中attr和prop方法的区别
jQuery中attr和prop方法的区别。 http://my.oschina.net/bosscheng/blog/125833 http://www.javascript100.com/?p=8 ...
- 【前端】js中new和Object.create()的区别
js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...
- Java线程中run和start方法的区别
http://bbs.csdn.net/topics/350206340 Thread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法 ...
随机推荐
- U-Boot_bmp_logo_hacking
/*********************************************************************** * U-Boot_bmp_logo_hacking * ...
- js 获取客户端mac地址
js 获取客户端mac地址 javascript获取客户端网卡MAC地址和IP地址和计算机名 nodesj如何获得客户端的mac地址呢? 浏览器获取MAC地址 不限浏览器的mac地址取得的几种办法 I ...
- zoj 1108 FatMouse's Speed 基础dp
FatMouse's Speed Time Limit: 2 Seconds Memory Limit:65536 KB Special Judge FatMouse believe ...
- js获取 gps坐标
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(pos) { model.address. ...
- (8)propetry装饰器
propetry是一个内置函数,用来将一个功能伪装成一个数据属性 property将一个方法伪装成一个数据属性class People: def __init__(self,name,height,w ...
- 转-spring boot web相关配置
spring boot web相关配置 80436 spring boot集成了servlet容器,当我们在pom文件中增加spring-boot-starter-web的maven依赖时,不做任何w ...
- ArrayList和LinkedList插入删除效率的测试(完全不在一个数量级8/20)
通过index获取元素的值 java里面的链表可以添加索引,而C中的链表,是没有索引的 package ArrayListVSLinkedList; import java.util.ArrayLis ...
- JSON字符串-赋张最初接触后台从map转json的方法
**************************************** json数组: *************************************************** ...
- ORACLE与SQL SERVER语法区别
一.数据类型 ORACLE与SQL SERVER在数据类型的对比如下: SQL SERVER ORACLE 数字类型 DECIMAL[(P[, S])] NUMBER[(P[, S])] NUMERI ...
- npx 知识点
npx 介绍:https://segmentfault.com/a/1190000010149499