Используйте RegEx в скрипте Google Doc Apps для замены текста - PullRequest
0 голосов
/ 23 января 2019

В документе Google есть строка с отметкой времени и даты. Я написал следующий код, используя регулярное выражение для замены этой строки на текущее время / дату, но я не уверен, почему это не работает.

function UpdateDate() {

  var document = DocumentApp.getActiveDocument();
  var date = new Date();

  var regExp = /[0-9]{1,2}:[0-9]{2} [A-Z]{2} [A-Za-z]* [0-9]{1,2}, [0-9]{4}/;
  document.replaceText(regExp, Utilities.formatDate(date, 'America/Denver', 'h:mm a MMMM dd, yyyy'));

}

Если я заменим «regExp» в строке document.replaceText, например, «15:43 22 января 2019 года», код правильно заменит это на обновленную дату / время, но он не сможет замените соответствующее регулярное выражение. Есть идеи? Спасибо!

1 Ответ

0 голосов
/ 23 января 2019

Вы должны передать регулярное выражение с помощью строкового литерала:

var regExp = "[0-9]{1,2}:[0-9]{2} [A-Z]{2} [A-Za-z]* [0-9]{1,2}, [0-9]{4}";

Документация replaceText объясняет это:

Поискшаблон передается в виде строки, а не объекта регулярного выражения JavaScript.Из-за этого вам нужно избегать любых обратных косых черт в шаблоне.

Этот метод использует библиотеку регулярных выражений Google RE2 , которая ограничивает поддерживаемый синтаксис .

...