ES6中正则表达式中的y含义

100 阅读1分钟

y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。(正则的扩展 - ES6 教程 - 网道 (wangdoc.com)

/y下一次检索开头的位置就必须为符合要求的,不然就会返回null 大概就是这么个意思

例如


    let reg = /a+/g
    let str = 'abca'
    
    reg.exec(str)    //第一次执行后得到a
    reg.exec(str)    //第二次执行后还会得到a
    
    let reg2  = /a+/y
    let str2 = 'abca'
    
    reg.exec(str)    //第一次执行后得到a
    reg.exec(str)    //第二次执行后因为剩余的字符串是bca 下标第一个是字母b 不符合a的字母 所以返回null