排坑·IPhone&IOS中不兼容正则中的断言匹配

阅文时长 | 1.14分钟 字数统计 | 1834.4字符
主要内容 | 1、问题切入 2、什么是断言匹配 3、断言匹配的替换方案 4、声明与参考资料
『排坑·IPhone&IOS中不兼容正则中的断言匹配』
编写人 | SCscHero 编写时间 | 2020/12/7 AM12:14
文章类型 | 单篇 完成度 | 已完成
座右铭 每一个伟大的事业,都有一个微不足道的开始。

一、问题切入   完成度:100%

a) 问题发现

PC端谷歌、QQ、Edge浏览器正常运行,移动端安卓设备可以正常运行的正则。 Macbook没有测试 (没有Mac电脑) 。 在IPhone系设备,IOS系统中的Safari浏览器、QQ浏览器都出现报错。报错信息在JS中使用try…catch语句获取到:SyntaxError:Invalid regular expression:invalid group specifier name。

b) 问题分析&排查方向

报错分析:
报错翻译过来是"正则表达式无效:组说明符名称无效。",推测是正则中的分组问题,然后经查其他使用正则的接口都是正常的,但出错接口是因为含有断言匹配。于是乎方向似乎明确了,IPhone设备可能将断言匹配当做了普通分组,于是为了兼容IPhone设备,改用分组写法匹配数据,详见例子。

解决过程/排查方向/摸索过程(可跳过看下面解决方案):
【错误方向1】首先,由于在其他设备、系统中都可以正常运行。于是以为是CSS前缀问题,于是检查了postcss-loader、autoprefixer插件。正常无问题。
【错误方

你可能感兴趣的:(#,正则表达式,正则,正则表达式,IPhone兼容性问题)