正则表达式匹配问题

    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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题