删除两个文本值之间无限量的文本

Remove unlimited amounts of text between two text values

我正在使用以下代码删除一系列字符之间的文本。

但是,当我尝试删除多段文本时,出现以下错误:

Index (548) must be less than the content length (377). (line 195, file "")

如何删除两个文本值之间无限量的文本?

function removeCbSevHD1(X) {
    var rangeElement1 = DocumentApp.openById(X).getBody().findText('<CS1>');
    var rangeElement2 = DocumentApp.openById(X).getBody().findText('<CS2>');
    Logger.log(rangeElement1.getElement());
    if (rangeElement1.isPartial()) {
        var startOffset = rangeElement1.getStartOffset();
        var endOffset = rangeElement2.getEndOffsetInclusive();
        rangeElement1.getElement().asText().deleteText(startOffset,endOffset);}
    }
}

扩展我的 to your previous ,你不能 select 从一个范围的开始到另一个范围的结束。这就是 if (element.isPartial()) { ... } else { ... } 条件的用途。如果范围是整个元素,它将删除整个元素。

如果要删除多个范围,则必须一次删除一个范围。

在下面的示例中,我通过循环搜索字符串数组并将该函数应用于每个搜索字符串来实现此目的。

function removeCbSevHD1(X) {
    // If you want to add more things to match and remove, add to this array
    var search = /<CS1>.*<CS2>/;
    var rangeElement = DocumentApp.openById(X).getBody().findText(search);
    if (rangeElement.isPartial()) {
        var startOffset = rangeElement.getStartOffset();
        var endOffset = rangeElement.getEndOffsetInclusive();
        rangeElement.getElement().asText().deleteText(startOffset,endOffset);
    } else {
        rangeElement.getElement().removeFromParent();
    }
}

注:未测试。

小G!感谢大家的帮助。

我找到了一些帮助。答案如下:

function removeSection3(X) {
for (var i = 1; i <= 7; i++) {
var search = '<ZY' + i + '>';    
var rangeElement = DocumentApp.openById(X).getBody().findText(search);
if (rangeElement) {
  rangeElement.getElement().getParent().removeFromParent();
}

} }