如何使用findText()更改谷歌文档中的格式多次出现?

时间:2015-09-19 23:35:56

标签: google-apps-script google-docs

我正在尝试在google doc中查找文本并使用下标符号替换 - 替换" a3"使用a3但现在将3格式化为下标。

根据答案here 我写了一些有用的代码,但是只替换了任何一个实例的第一个实例(有些重复)。

我写了以下内容:

  for (var k=0; k<subscriptsReplace.length; k++) {
      subscript = ' a'+subscriptsReplace[k];
      find = ' a'+subscriptsReplace[k]+' ';
             Logger.log(find)
  var element = body.findText(find);
  if(element){ // if found a match
    var start = element.getStartOffset();
    var text = element.getElement().asText();
    text.replaceText(find, subscript);
    text.setTextAlignment(start+2, start+2, DocumentApp.TextAlignment.SUBSCRIPT);
    Logger.log("found one");
} // else do nothing
}

请注意subscriptsReplace是一个数组,其中包含整个文档中所有下标的数量。

我无法弄清楚为什么它没有得到重复,通过查看日志,我知道它没有按重复条件运行 - 所以它不会重新替换它已经被替换的相同的下标。

有人能看到发生了什么吗? 谢谢你!

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法替换整个身体中的所有内容:

function testReplace() {
  var docBody = DocumentApp.getActiveDocument().getBody();
  docBody.replaceText(searchPattern, replacement);
};

Google Documentation - Replace Text