正则表达式☞相关函数
正则表达式对象方法
test方法
var regexp1 = /a/g; var regexp2 = /a/; var str = 'abcd'; regexp1.test(str); true regexp1.test(str); false regexp1.test(str); true regexp2.test(str); true regexp2.test(str); true
当正则表示式是全局模式时,每次调用都会重置正则表达式对象的lastIndex属性,下一次调用test方法的时候,将会从lastIndex开始查找;非全局模式时,lastIndex属性始终为0
exec方法
var reg = /a/g; var strs = 'abcdabcdabcd'; reg.exec(strs); ["a", index: 0, input: "abcdabcdabcd"] reg.exec(strs); ["a", index: 4, input: "abcdabcdabcd"] reg.exec(strs); ["a", index: 8, input: "abcdabcdabcd"] reg.exec(strs); null reg.exec(strs); ["a", index: 0, input: "abcdabcdabcd"] var reg1 = /a/; reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"] reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"] reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
当正则表示式是全局模式时,每次调用都会重置正则表达式对象的lastIndex属性,下一次调用test方法的时候,将会从lastIndex开始查找;非全局模式时,lastIndex属性始终为0。但是不管正则表达式是全局模式还是非全局模式,都只返回一个匹配项的相关信息,区别于后面说到的match方法
字符串与正则表达式相关的方法
match方法
var reg = /a/g; var reg1 = /a/; var strs = 'abcdabcdabcd'; strs.match(reg); ["a", "a", "a"] strs.match(reg1); ["a", index: 0, input: "abcdabcdabcd"] strs.match(reg1); ["a", index: 0, input: "abcdabcdabcd"]
当正则表示式是全局模式时,会把所有的匹配项都组成数组返回来;非全局模式时,只返回匹配的第一项。
search方法
var reg = /a/g; var reg1 = /a/; var strs = 'abcdabcdabcd'; strs.search(reg); 0 strs.search(reg); 0 strs.search(reg); 0 strs.search(reg1); 0 strs.search(reg1); 0 strs.search(reg1); 0
不管正则表示式是全局模式还是非全局模式,只返回匹配的第一项。
replace方法
var reg = /a/g; var reg1 = /a/; var strs = 'abcdabcdabcd'; strs.replace(reg, '&'); "&bcd&bcd&bcd" strs.replace(reg1, '&'); "&bcdabcdabcd"
如果正则表示式是全局模式,替换所有匹配的字符串,如果是非全局模式,只替换匹配的第一项。
字符串与正则相关的三个方法都不会改变正则表达式的属性,不会改变lastIndex的值
相关推荐
wangzhaotongalex 2020-10-20
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13
duanqingfeng 2020-09-29
rechanel 2020-11-16
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
phphub 2020-09-10
taomengxing 2020-09-07
MaggieRose 2020-08-19
flyingssky 2020-08-18
山水沐光 2020-08-18
jyj00 2020-08-15
AHuqihua 2020-08-09
山水沐光 2020-08-03