繁体   English   中英

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

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

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

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

码:

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

Lookbehind是一项相当新的功能-只有某些浏览器支持它,并且无法完全编译(据我所知),因此是错误。 使用标准匹配而不是向后搜索,在cat/之后的部分使用捕获组,然后返回第一个捕获组:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM