es6对于正则表达式添加了 u 修饰符和 y 修饰符。
u 修饰符:含义为“Unicode模式”,用来正确处理大于\uFFFF的Unicode字符。
该修饰符不光会正确处理正则表达式,还会正确处理被匹配的字符串。
利用新增的正则实例对象属性 unicode ,可以判断正则表达式是否设置了u修饰符。(reg.unicode)
y 修饰符:叫做 “粘连”(sticky)修饰符。用来正确处理匹配粘连的字符串。
它的作用和g修饰类似,也是全局匹配。
它可以使用新增的正则对象属性sticky来判断正则对象是否设置了y修饰符。(reg.sticky)
区别:(y 和 g)
1. g 修饰符只要剩余位置中存在匹配的字符串就可以返回成功。
而y修饰符确保匹配必须是从剩余的所有位置中的第一个位置开始,这也是粘连的含义。
2. y 修饰符隐含了头部匹配的标志^(^x表示匹配的字符串的首个字符必须是x)
s 修饰符:被称为 dotAll 模式,即点(dot)代表一切字符。
可以使用正则对象新增属性 dotAll 来判断正则对象是否设置了 dotAll 模式。(reg.dotAll)
作用是可以使得 . 可以匹配任意单个字符。
u、y、s都是新增的正则对象修饰符。
在js正则对象还有其他的元老修饰符,i(是否执行大小写不敏感匹配,设置了就不区分大小写)、m(多行匹配)、g(全局匹配)。