Как выделить фиксированное количество символов после слова с помощью javascript (google script)

Я хочу, чтобы скрипт документа Google сделал что-то подобное.

Найдя в документе строку Dernière modification, добавьте рядом с ней 24 символа внутри var chercher. (строка 4 в моем коде)

Я только знаю, что после этих слов всегда 24 символа, а не то, что внутри.

Вот так: Dernière modification | 2019 02 08 | 13:24:46

Дата и номер часа меняются каждый раз


На самом деле я не разработчик, у меня мало знаний в javascript, поэтому я здесь

Я прочитал это, но я не знаю, с чего начать без навыков

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp

https://developers.google.com/apps-script/reference/document/text#findText(String)


function insertAtCursor() {
    var id = DocumentApp.getActiveDocument().getId();
    var update = DriveApp.getFileById(id).getLastUpdated();
    var chercher = DocumentApp.getActiveDocument().getBody().findText('Dernière modification');
    var formattedDate = Utilities.formatDate(update, "GMT+01:00", "yyyy MM dd '|' HH:mm:ss");
    var modification = 'Dernière modification | ' + formattedDate;
    //var element = curseur.insertText(modification);

    if (chercher === modification) {
        DocumentApp.getActiveDocument().getCursor().insertText('reussite');
    } else {
        DocumentApp.getActiveDocument().getCursor().insertText('raté');
    }
}

На самом деле результат var chercher = Dernière modification

И я хочу var chercher = Dernière modification | 2019 02 08 | 13:24:46 каждый раз с другим номером.

Я ожидаю что-то вроде этого ~ : var chercher = DocumentApp.getActiveDocument().getBody().findText('Dernière modification'++\w 24);

Я открыт для любой идеи


person Alex Quiniou    schedule 08.02.2019    source источник


Ответы (1)


  • Регулярное выражение для любого символа .
  • Вы можете количественно оценить группы регулярных выражений с помощью {}
  • findText() вернет только rangeElement. Вы должны получить элемент и смещенный текст, чтобы получить совпадающую строку.

Фрагмент кода:

function search() {
  var rangeElement = DocumentApp.getActiveDocument()
    .getBody()
    .findText('Dernière modification.{24}');

  var chercher = rangeElement
    .getElement()
    .asText()
    .getText()
    .substring(
      rangeElement.getStartOffset(),
      rangeElement.getEndOffsetInclusive()+1
    );
  Logger.log(chercher);
}

Использованная литература:

person TheMaster    schedule 08.02.2019