Safari正则兼容问题记录
title: Safari正则兼容问题记录
date: 2022-02-13 13:05:32
categories: 踩坑记录📝
tags: [正则,Safari]
Halo某主题代码渲染出现问题,查看控制台发现报错如下:
定位到错误代码:
var reg = new RegExp("(?<=]).+(?=\\[/)", "g");
var noway = new RegExp("(?=\\[noway])(\\S*)(\\[/noway]=?)", "g");
var buy = new RegExp("(?=\\[buy])(\\S*)(\\[/buy]=?)", "g");
var task = new RegExp("(?=\\[task])(\\S*)(\\[/task]=?)", "g");
var warning = new RegExp("(?=\\[warning])(\\S*)(\\[/warning]=?)", "g");
错误分析
根据控制台报错,问题出现在正则匹配式上。尝试在Chrome上运行该行代码,无报错,至此可以肯定是浏览器的兼容性问题。
经查阅发现Safari不支持零宽断言,即?<=
、?=
,解决办法是使用其它表达式替换零宽断言。