[英]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.