一.定义:
直接量:/s$/
构造函数:new RegExp(“s$”);
各种字符与元字符:
1.直接量字符:支持非字母的匹配,通过反斜线(\)进行转义
2.字符类:一个字符类可以匹配它所包含的任意字符
3.重复:正则表达式的模式匹配总是会寻找字符串中第一个可能匹配的位置
非贪婪的重复:只需在待匹配的字符后跟随一个问号
4.选择,分组和引用:
()作用:a.把单独的项组合成子表达式
b.在完整的模式中定义子模式,可以从目标中抽出和圆括号中的子模式相匹配的部分
c.允许在同一正则表达式的后部引用前面的子表达式
5.指定匹配位置
6.修饰符:修饰符是放在/符号之外的
二.用于模式匹配的String方法
1.search()不支持全局检索,忽略正则表达式参数中的修饰符g
2.replace()
3.match()
4.split()
三.RegExp对象
三个方法和一些属性
属性:
sourse是一个只读的字符串,包含正则表达式的文本
global是一个只读的布尔值,说明这个正则表达式是否带有修饰符g
ignoreCase是一个只读的布尔值,说明正则表达式是否带有修饰符i
multiline只读布尔值,是否带有m
lastIndex是一个可读/写的整数
方法:RegExp方法参数是一个字符串,而String方法参数是一个RegExp对象
exec()在一个字符串中执行匹配检索,若有返回数组,没有返回null
test()
-------------------------------------------------------------------------------------------------
es6新增
新增了几个修饰符:
- s表示将 . 操作符表示任意字符,es5不能匹配\n等换行符。例如:/chj.ssg/.test('chj\nssg') //false,/chj.ssg/s.test('chj\nssg') //true
- u修饰符表示Unicode模式,用来检索大于\uFFFF的字符,可以处理4个字节的Unicode
- y修饰符,跟g差不多,,具有粘性(sticky)
String增加了matchAll函数