一、正则的属性:
- ignoreCase:返回一个布尔值,表示是否设置了i修饰符,该属性只读。
- global:返回一个布尔值,表示是否设置了g修饰符,该属性只读。
- multiline:返回一个布尔值,表示是否设置了m修饰符,该属性只读。
表示是否忽略大小写、全局匹配、多行匹配(没设置就只匹配一行,例如("a\nb")这种的)
二、方法:
1.test:
var reg = /t/g; var str = 'test'; reg.lastIndex //0 reg.test(str) //true reg.lastIndex //1 reg.test(str) //true reg.lastIndex //4 reg.test(str) //false
有g的时候就会全部的匹配,并且每次都在上次一匹配结束的下一个位置开始。
2.exec()
返回匹配结果,返回一个数组,成员是匹配成功的字符串,没有则返回null,如果使用组匹配,则匹配成功的结果在数组第二个位置类似/t(e)st/,则会返回['test','e'],exec返回的两个属性,input返回元字符串,index整个模式匹配成功的开始位置,如果没有g则一直返回相同的匹配位置。
3.字符串的方法,match、search、replace、split
match和exec类似,但是如果设置g属性,则会一次返回所有的匹配,和exec一次一个不同。
search是查找位置。replace替代、split分割成数组。
4.replace第二个参数可以用$指代替换的内容
$& 指代匹配的子字符串。 $` 指代匹配结果前面的文本。 $' 指代匹配结果后面的文本。 $n 指代匹配成功的第n组内容,n是从1开始的自然数。 $$ 指代美元符号$。
同时第二个参数也可以是函数