正则表达式匹配问题

    let re = /((xx)\1)/i;
    let str = "xx"; 
    console.log(re.test(str));

最外层加了个括号为什么结果就变成true了?

阅读 1.9k
2 个回答

可能是,你的外层括号导致了正则解析器认为造成了递归回环逻辑问题,外括号可能与1形成冲突,毕竟1是倒回去重复第几个括号里的正则

/((xx))/
/(xx)\1/

以上两种正则都没有问题

可能是解析器最终处理成/(xx)/,1起了冲突,就忽略了1

推荐问题