如何解决此 RegExp 问题并在 GTM 中出现 JavaScript 编译器错误?

How do I fix this RegExp problem with JavaScript Compiler Error in GTM?

尝试发布新的 GTM 版本时,我遇到了我未编辑的变量的错误(它们曾经有效,现在显示错误)。

Error message:JavaScript Compiler Error Error at line 4, character 18: Cannot convert ECMASCRIPT_2018 feature "RegExp Lookbehind" to targeted output language.

代码:

function(){

  var myRegexp = /(?<=(\/.*\/cat\/)).*?(?=\/)/g; //regex rule
  var result = document.URL.match(myRegexp);
  if(result !== null){
    return result[0];
  }else{
    return null;
  }

}

Lookbehind 是一个相当新的功能 - 只有一些浏览器支持它,并且它不能完全被转译(据我所知),因此出现错误。使用标准匹配而不是lookbehind,cat/之后的部分有一个捕获组,第一个捕获组return:

var pattern = /\/.*\/cat\/([^/]+)/;
var match = document.URL.match(pattern);
return match
? match[1]
: null;