我想使用 google appscript 替换我的 google 文档上的文本,将其转换为 PDF。但问题是函数replaceText(textToReplace, newText);只需删除所有出现的匹配文本即可。我只想删除第一次出现的情况。如何做到这一点?
最佳答案
通过在某个元素上调用 replaceText
方法,可以将其范围限制为该元素。但是,如果找到文本的第一段包含该文本的多个实例,则这无济于事:它们都将被替换。
而是使用 findText
查找第一个匹配项,然后调用 deleteText
和 insertText
执行替换。
// replaces the first occurrence of old
function replaceFirst(old, replacement) {
var body = DocumentApp.getActiveDocument().getBody();
var found = body.findText(old);
if (found) {
var start = found.getStartOffset();
var end = found.getEndOffsetInclusive();
var text = found.getElement().asText();
text.deleteText(start, end);
text.insertText(start, replacement);
}
}
如果您认为这应该更容易,那么您并不孤单。
关于google-apps-script - Google应用程序脚本replaceText仅替换第一次出现的匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51783382/