regexp
RegExp的五个属性
- sorce:是一个只读的属性值,包含正则表达式的规则内容
var reg = /JavaScript/;
reg.source; //返回 JavaScript
- global:是一个只读的布尔值,看这个正则表达式是否带有修饰符g。
var reg = /JavaScript/;
reg.global; //返回 false
var reg = /JavaScript/g;
reg.global; //返回 true
- ignoreCase:是一个只读的布尔值,看这个正则表达式是否带有修饰符i。
var reg = /JavaScript/;
reg.ignoreCase; //返回 false
var reg = /JavaScript/i;
reg.ignoreCase; //返回 true
- multiline:是一个只读的布尔值,看这个正则表达式是否带有修饰符m。
var reg=/JavaScript/;
reg.multiline; //返回false
var reg=/JavaScript/m;
reg.multiline; //返回true
- lastIndex:是一个可读/写的整数,如果匹配模式中带有g修饰符,这个属性存储在整个字符串中下一次检索的开始位置,这个属性会被exec( ) 和 test( ) 方法用到。
重点:一定要记住这个属性(在手机靓号类型上,这可能会是个注意点)
var reg = /11/g;
var str = ''123411899"
//此时 reg.lastIndex //为0
reg.exec(str);
console.log(reg.lastIndex)//索引为6
当下一次执行reg正则时,会从索引6开始效验,然后以此类推,
如最后结果返回null,那reg的lastIndex会重置为0
RegExp的五个方法
1. test()
理解:通过正则规则效验字符串,返回boolean值
在这里插入代码片
var str="java";
var reg=/javaScript/;
reg.test(str); //返回true
var str="JavaScript";
var reg=/Java/g;
console.log(reg.test(str)); //打印 true 因为此时的正则方法的执行后astIndex=4
console.log(reg.test(str)); //打印 false 所以再次执行时 从索引4开始效验,后面没有就返回false了
注意点
如果不加g(全局)的话可以不用管
2.exec()
理解:效验符合规则的字符,并返回字符值,格式为(对象)数组
var str = 'javascript';
var reg = /java/
reg.exec(str)//返回["java", index: 0, input: "javascript", groups: undefined]
3.search()
理解:字符串效验符合正则规则的字符,true返回出现的索引值/false返回-1
var str = 'javascript';
var reg = /va/
str.search(reg)//返回2
4.match()
理解:字符中效验符合规则的字符,true(成功)返回为数组内容/false返回null
var str = 'javascript';
var reg = /a/g
str.match(reg)//返回 ["a", "a"]
var reg = /a/
str.match(reg)//不加g返回 ["a", index: 1, input: "javascript", groups: undefined]
注意:当正则不加g 时,返回的内容跟exec方法的一样
5.replace()
理解: 效验符合正则的字符,替换成对应的字符串,返回替换后的内容。
例子 一
var str = 'javascript';
var reg = /ava/g
str.replace(reg, 'AVA')//返回"jAVAscript"
//下面这个实用
例子 二
var str = 'javascript';
var reg = /ava/g
var text = "<text >$&</text>"
str.replace(reg, text )//返回"j<text >ava</text>script"