代码环境:
@angular11
@node12
@ts
问题:
编辑
原因:
safari不支持下面几种断言验证
(?!)零宽负向先行断言
(?=)零宽先行断言
(?<=)零宽后行断言
(?<!)零宽负向后行断言。
解决方案:
把项目中所有用正则的地方,写法改一下。
// 会报错
let regExp = /(?<=:(?!/).*?/).*!/g;
// 改成下面这种写法
let regExp = new RegExp("(?<=:(?!/).*?/).*!", 'g');
更新:
根据 @前端天花板 的补充:
报错的根本原因是Webkit不支持这种正则,2022年底修复了。
网页链接
safari >=16.4 可正常使用了
网页链接
感谢@前端天花板 评论
再次更新:
编辑
编辑
根据浏览器版本介绍,理论上2023年3月27后的Safari版本才支持。