es6学习笔记(四)正则的扩展
1、RegExp构造函数
在ex5中RegExp构造函数的参数可以是字符串和修饰符,或者正则表达式,但不能出现正则表达式和修饰符,es6中做了改进,允许正则表达式和修饰符的同时出现,新的修饰符将替换原正则表达式的修饰符。
2、字符串的正则方法
字符串对象有四个方法可以使用正则表达式split,search,match,replace
ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。
3、u修饰符
ES6 对正则表达式添加了u修饰符,含义为“Unicode 模式”,用来正确处理大于\uFFFF的 Unicode 字符。也就是说,会正确处理四个字节的 UTF-16 编码。
4、RegExp.prototype.unicode属性
正则实例对象新增unicode属性,表示是否设置了u修饰符。
5、y修饰符
除了u修饰符,ES6 还为正则表达式添加了y修饰符,叫做“粘连”(sticky)修饰符。
y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。
实际上,y修饰符号隐含了头部匹配的标志^。
单单一个y修饰符对match方法,只能返回第一个匹配,必须与g修饰符联用,才能返回所有匹配。
6、RegExp.prototype.sticky属性
与y修饰符相匹配,ES6 的正则实例对象多了sticky属性,表示是否设置了y修饰符。
7、RegExp.prototype.flags属性
ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符。
8.s修饰符dotAll模式
在es5中,“.”’无法代表换行符,在使用了s修饰符后,就可以代表了,dotAll模式即点(dot)代表一切字符
9、后行断言
10、unicode属性类
11、具名组匹配
“具名组匹配”在圆括号内部,模式的头部添加“问号 + 尖括号 + 组名”(?<year>),然后就可以在exec方法返回结果的groups属性上引用该组名。同时,数字序号(matchObj[1])依然有效
12、解构赋值和替换
13.String.prototye.matchAll属性
遍历器转为数组是非常简单的,使用...运算符和Array.from方法就可以了。
浙公网安备 33010602011771号