RegExp.prototype.exec() 方法:用于检索字符串中的正则表达式的匹配。
语法:RegExpObject.exec(string)
找到了匹配的文本,返回一个结果数组,并且更新正则表达式对象的属性。
否则,返回 null。
var myRe = /ab*/g;
var str = 'abbcdefabh';
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = 'Found ' + myArray[0] + '. ';
//查找将从正则表达式的 lastIndex 属性指定的位置开始,每次迭代时 lastIndex 的属性都被重置,不能放在 while 条件表达式里
msg += 'Next match starts at ' + myRe.lastIndex;
console.log(msg);
//Found abb. Next match starts at 3
//Found ab. Next match starts at 9
}
String.prototype.match()方法: 当字符串匹配到正则表达式(regular expression)时,会提取匹配项。
语法:str.match(regexp);
返回一个包含匹配结果的数组,如果没有匹配项,则返回 null。
如果正则表达式没有 g 标志,返回和 RegExp.exec(str) 相同的结果。
如果正则表达式包含 g 标志,则该方法返回一个包含
所有匹配结果的数组。
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
console.log(matches_array);
//["A", "B", "C", "D", "E", "a", "b", "c", "d", "e"]
var exec_array = regexp.exec(str);
console.log(exec_array);
//两个额外属性:index是匹配字符串的起始位置,input是整个输入字符串。
//["A", index: 0, input: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"]
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/;
var matches_array = str.match(regexp);
console.log(matches_array);
//["A", index: 0, input: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"]
var exec_array = regexp.exec(str);
console.log(exec_array);
//["A", index: 0, input: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"]
结论:RegExp.prototype.exec() 与 String.prototype.match() 的不同之处
--------无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。
当RegExp的
global属性为true时,返回的数组是不同的:
match方法返回的数组包含着所有匹配字符串,没有子匹配字符串和额外属性。此时,lastIndex属性无效。
exec方法返回的数组格式与global为false时一样,只是此时RegExp的lastIndex属性有效,匹配是从lastIndex所指示的字符开始的,并且方法执行后会将lastIndex置为本次匹配字符串的下一个字符处,所以循环执行exec方法时会依次匹配整个字符串,直到字符串最后返回null,并将lastIndex置0。
http://www.cnblogs.com/zhaoran/archive/2013/01/10/2854852.html
分享到:
相关推荐
随风正则匹配工具支持多语言,自动生成正则文本,根据语言的不同,生成不同的执行语法,匹配成功后直接复制后可到所属语言直接使用。 随风正则匹配工具功能: 一:支持多语言,目前支易、PHP、JSP等 二:自动生成...
正则匹配代码\正则匹配代码\正则匹配代码\正则匹配代码
全角数字正则匹配后输出半角数字,可以把日期字符串中的全角转换成半角,又便于转换成日期格式
多数正则匹配,电子邮箱 15位或18位身份证号码 信用卡号、借记卡号 身份证号、统一社会信用代码等 军官证 护照号 港澳通行证 组织机构代码 纳税人识别号 工商登记号或营业执照号 出生日期、发卡日期等 金额 公司网站...
正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip正则匹配小工具源码.zip...
isMobileSimple : 验证手机号(简单) isMobileExact : 验证手机号(精确) isTel : 验证电话号码 isIDCard15 : 验证身份证号码15位 isIDCard18 : 验证身份证号码18位 ...getReplaceAll : 替换所有正则匹配的部分
asp.net正则匹配特定汉字匹配格式为2012年第001期(总第001期)asp.net正则匹配特定汉字匹配格式为2012年第001期(总第001期)asp.net正则匹配特定汉字匹配格式为2012年第001期(总第001期)asp.net正则匹配特定汉字匹配...
正则匹配字符串中是否包含网址,跟微信的匹配规则相似。有需要的小伙伴可以下载来试一下,规则基本跟微信的匹配规则相似。
正则匹配URL
随风正则匹配工具
常用的绿色的正则匹配工具,平常一直用的。很好用分享一下。
让你爱上正则,简单帅气的正则匹配小工具,还等什么赶快下载把,支持各种正则匹配,让你不再为正则感觉头疼
侠客正则匹配工具
javascript正则匹配页面关键字,内附详细代码
在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和其他语言也差不多。附件带上了,可以研究研究,构造正则表达式的方法...
项目中常用的 表情代码正则匹配,在数据库中建立表情表,将表情id与其路径转换
Python零基础10天进阶班【10正则匹配-正则表达式 Regular Expression、树形模型(树形匹配)-intro bs4、爬虫】
Python零基础10天进阶班【10正则匹配-正则表达式 Regular Expression、树形模型(树形匹配)-intro bs4、爬虫】
Python零基础10天进阶班【10正则匹配-正则表达式 Regular Expression、树形模型(树形匹配)-intro bs4、爬虫】
易语言正则匹配网页链接源码,正则匹配网页链接