У меня есть скрипт, который берет текущий документ и ищет пользовательскую строку, используя findText. Если в этой строке есть кавычка (например, Боберса). findText не находит его. Я знаю, что он использует регулярные выражения, но я не могу понять, как отформатировать выражение, чтобы он нашел это правильно.

Пример кода:

var target = "Bob's Burgers";
var body = DocumentApp.getActiveDocument().getBody();

try
{
    var searchResult = body.findText(target);
    //does not find the text. But can find Bob easily.
}
catch(e) { ...}
0
Phil Allison 18 Мар 2017 в 19:38

2 ответа

Лучший ответ

Я попробовал метод findText, используя код из этой записи:

function highlightText(findMe) {
    var body = DocumentApp.getActiveDocument().getBody();
    var foundElement = body.findText(findMe);

    while (foundElement != null) {
        // Get the text object from the element
        var foundText = foundElement.getElement().asText();

        // Where in the Element is the found text?
        var start = foundElement.getStartOffset();
        var end = foundElement.getEndOffsetInclusive();

        // Change the background color to yellow
        foundText.setBackgroundColor(start, end, "#FCFC00");

        // Find the next match
        foundElement = body.findText(findMe, foundElement);
    }

}

function myFunction() {
  highlightText("Bob’s Burger");

}

Результат:

enter image description here

Надеюсь это поможет.

0
Community 23 Май 2017 в 10:29

Используйте \ `вместо` чтобы избежать этого.

var target = "Bob\'s Burgers";
0
Sangbok Lee 18 Мар 2017 в 17:01