You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Safari报SyntaxError:无效正则表达式组名evaluateWithScopeExtension问题咨询

Safari运行JavaScript正则抛出SyntaxError错误排查及适配方案

错误原因

  • 报错根因是正则表达式中使用了可变长度的后行断言:你代码里的(?<=订单号:(\d+,)*)属于后行断言语法,其中*量词代表的匹配长度不固定
  • Safari浏览器的正则引擎对后行断言的支持存在版本限制:Safari 16.4及更早版本不支持可变长度的后行断言,只要后行断言括号内出现*、+、{n,}这类非固定长度的量词,就会直接抛出SyntaxError: Invalid regular expression: invalid group specifier name语法错误

适配方案

方案1:替换为捕获组写法(全浏览器兼容,优先推荐)

不需要使用后行断言,把不需要修改的前缀部分放在捕获组里保留,只捕获需要处理的内容即可,示例代码如下:

const originStr = '系统订单号:1717985597717212672;系统订单号:1718005616957731072;';
// $1对应第一个捕获组的前缀内容,m对应需要处理的匹配内容
const processedStr = originStr.replace(/(订单号:(?:\d+,)*)(\d+=|$)/g, (match, $1, m) => {
  console.log(`[logger-m] => `, m)
  return $1 + m;
});

方案2:升级Safari版本

如果业务允许仅兼容高版本浏览器,可引导用户将Safari升级到16.4及以上版本,该版本开始正式支持可变长度的后行断言语法。

内容的提问来源于stack exchange,提问作者quanquan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:06:03