findText找到包含引号的内容

时间:2017-03-18 16:38:08

标签: regex google-apps-script

我有一个脚本,它接受当前文档并使用findText查找用户定义的字符串。如果该字符串包含引号(如:Bob' s Burgers)。 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) { ...}

2 个答案:

答案 0 :(得分:0)

使用\`代替`来逃避它。

var target = "Bob\'s Burgers";

答案 1 :(得分:0)

我使用此post中的代码尝试了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

希望这有帮助。