Как я могу исправить эту проблему RegExp с ошибкой компилятора JavaScript в GTM? - PullRequest
0 голосов
/ 27 февраля 2019

При попытке опубликовать новую версию 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;
  }

}

1 Ответ

0 голосов
/ 27 февраля 2019

Lookbehind - довольно новая функция - ее поддерживают только некоторые браузеры, и ее нельзя точно передать (насколько я видел), поэтому возникает ошибка.Используйте стандартное сопоставление вместо lookbehind с группой захвата для детали после cat/ и верните первую группу захвата:

var pattern = /\/.*\/cat\/([^/]+)/;
var match = document.URL.match(pattern);
return match
? match[1]
: null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...