u修饰符 —— Unicode模式
能够正确处理大于\uFFFF
的Unicode字符
y修饰符 —— “粘连”(sticky)修饰符
与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一位置开始。
不同之处在于:
- g修饰符只要剩余位置中存在匹配就行
- y修饰符会确保匹配必须从剩余的第一个位置开始
let s = 'aaa_aa_a'
let r1 = /a+/g
let r2 = /a+/y
r1.exec(s) //['aaa']
r2.exec(s) //['aaa']
r1.exec(s) //['aa']
r2.exec(s) //null
r2
第二次匹配不成功,因为剩下的带匹配字符串为_aa_a
,不是以a
开头,所以匹配失败
网友评论