使用Docs GAS删除换行符

时间:2017-02-27 07:18:58

标签: regex google-apps-script escaping google-docs

我想使用Google文档的Google应用脚本

删除所有带空格的换行符
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody().editAsText();
body.replaceText("\\t", " "); //works properly for tabs
body.replaceText("\\n", " "); //doesnt work

https://developers.google.com/apps-script/reference/document/body#replacetextsearchpattern-replacement

有任何建议。?

1 个答案:

答案 0 :(得分:0)

似乎body.replaceText不允许替换段落之间的内容(段落中断)。

您需要以某种方式将所有段落合并为1段。您可以使用以下代码粗略地执行此操作:

function mergePars() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var pars = body.getParagraphs();
  for( var j = 0; j < pars.length; ++j ) {
    try {
        pars[j].merge();
    } 
    catch (e) {
      Logger.log(e); // It will log "Exception: Element must be preceded by an element of the same type."
    }
  }
}

如果您获得文档中所有子项的数量(使用.getNumChildren()),然后遍历检查其DocumentApp.ElementType的项目,以及前一个节点,您可以删除try-catch属于DocumentApp.ElementType.PARAGRAPH类型,请.merge()