Как использовать findText без учета регистра?

Я пытаюсь найти строку в Документе Google. По умолчанию 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);

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

0
задан TheMaster 16 January 2019 в 12:30
поделиться

2 ответа

Проблемы:

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

Решение:

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

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

Читать:

0
ответ дан TheMaster 16 January 2019 в 12:30
поделиться

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

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

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

0
ответ дан Александр Ермолин 16 January 2019 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: