我正在使用以下代码删除一系列字符之间的文本。
但是,当我尝试删除多段文本时,收到以下错误:
索引(548)必须小于内容长度(377)。 (第195行,文件“”)
如何在两个文本值之间删除无限量的文本?
MyThread.run
答案 0 :(得分:0)
将answer扩展到您之前的question,您无法从一个范围的开头到另一个范围的结尾进行选择。这就是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();
}
}
注意:未经测试。