正则打包报错原因

483 阅读1分钟

问题:开发环境正常运行的正则表达式,打包后就报错了

场景一:

之前是

let reg = new RegExp("(?<=\[).*(?=\])", "g");

原因:打包环境的转译字符需要写成双斜线

解决方案:

let reg = new RegExp("(?<=\\[).*(?=\\])", "g");

场景二:

报错信息:

ERROR Error: Uncaught (in promise): SyntaxError: Invalid regular expression: /(?<=_).*/: Invalid group(…)

当时的正则是

let reg = new RegExp("(?<=_).*");

找了很久没发现原因,然后我用我的电脑访问了开发环境发现没有报错,但是测试人员测试的时候有报错

推断:可能是浏览器版本低了无法识别正则断言

解决方案:升级浏览器

问题解决!