我已经让doc.getBody().replaceText(oldregex,newstring)
在Google文档脚本中工作正常,并且希望在新闻字符串上设置一些粗体/斜体。这看起来比我想象的要难。有没有人找到一个整洁的方法来做到这一点?
我目前以为我需要......
对于像HTML一样的标签来说,这似乎很简单。我肯定错过了一些东西。非常感谢任何建议。
答案 0 :(得分:1)
由于replaceText
仅更改纯文本内容,保留格式,因此可以通过在替换之前应用格式来实现目标。首先,findText
遍历文本并为每个匹配设置粗体;然后replaceText
执行替换。
有两种情况需要考虑:只有元素中的一部分文本匹配(这是典型的)并且整个元素是匹配的。 isPartial
类的属性RangeElement
区分了这些属性。
function replaceWithBold(pattern, newString) {
var body = DocumentApp.getActiveDocument().getBody();
var found = body.findText(pattern);
while (found) {
var elem = found.getElement();
if (found.isPartial()) {
var start = found.getStartOffset();
var end = found.getEndOffsetInclusive();
elem.setBold(start, end, true);
}
else {
elem.setBold(true);
}
found = body.findText(pattern, newString);
}
body.replaceText(pattern, newString);
}
对于一些微不足道的事情来说,这似乎是很多工作
使用Apps脚本处理Google文档时,这是正确且典型的。