如何通过GTM中的JavaScript编译器错误解决此RegExp问题?

时间:2019-02-27 10:38:08

标签: javascript google-tag-manager

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

  

错误消息:JavaScript编译器错误错误,第4行,字符18:   无法将ECMASCRIPT_2018功能“ RegExp向后看”转换为目标   输出语言。

代码:

function(){

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

}

1 个答案:

答案 0 :(得分:1)

Lookbehind是一项非常新的功能-只有某些浏览器支持它,并且无法完全进行编译(据我所知),因此是错误。使用标准匹配而不是向后搜索,在 [DllImport("libc.so.6")] private static extern int setmntent([MarshalAs(UnmanagedType.LPTStr)] string path, [MarshalAs(UnmanagedType.LPTStr)] string argv); [DllImport("libc.so.6")] private static extern int getmntent(// What I should do?); [DllImport("libc.so.6")] private static extern int endmntent(//What I should do?); private static void Main(string[] args) { var aFile = setmntent("/proc/mounts", "r"); //What I should do? Console.ReadLine(); } 之后的部分使用捕获组,然后返回第一个捕获组:

cat/