Как использовать findText без учета регистра? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь найти строку в Google Document. По умолчанию findText чувствителен к регистру. Как я могу использовать это без учета регистра.

Ссылка гласит: "Поиск содержимого элемента по указанному текстовому шаблону с использованием регулярных выражений."

Вот что я попробовал:

function search(string) {
  var pattern = new RegExp(string, "gi");
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var rangeElement = body.findText(pattern);
  while (rangeElement) {
    var offset =rangeElement.getStartOffset();
    var text = rangeElement.getElement().asText().getText();
    html += text;
  } 
}

Но ничего не находит. Я также попробовал:

body.findText(pattern(string)); и body.findText(/string/\i);

Что-нибудь еще, что я могу попробовать?

Ответы [ 2 ]

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

Вопросы:

  • Отправка регулярного выражения "объект" вместо типа "строка" на findText()
  • Неверный синтаксис для нечувствительности к регистру.

Решение:

  • Используйте правильный синтаксис re2
  • Отправить регулярное выражение в виде строки. Это означает, что специальные символы \s с двойным экранированием \\s

    findText('(?i)Apple') //matches APPLE or AppLe 
    

Читать:

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

Как мы можем прочитать в официальном справочнике ,

Подмножество функций регулярного выражения JavaScript не полностью поддерживается, например, группы захвата и модификаторы режима.

Кроме того, будьте внимательны, чтобы использовать аргумент шаблона функции findText (): это должна быть строка , а не объект RegExp.

...