方法findText()卡在Google文档的第一段
Method findText() stuck in first paragraph of Google Document
我正在尝试在Google文档中查找某些单词,以便通过脚本格式化它们。问题是,似乎 findText() 只能在第一段中找到单词。如果它在其他地方,findText() 会发疯并给我(看似)单词的随机位置。以下是它的编码方式:
function findBoldMarks(){
var doc = DocumentApp.openById('docId');
var docText = doc.editAsText();
// search initial bold markup
var srcB0 = body.findText('bold0');
var idB0 = srcB0.getStartOffset();
// search final bold markup
var srcB1 = body.findText('bold1');
var idB1End = srcB1.getEndOffsetInclusive();
// set markup and text wrapped within bold markup as bold
docText.setBold(idB0, idB1End, true);
}
我觉得我一定忽略了一些基本的东西,但是经过几个小时的挣扎,我不再确定。我很欣赏任何想法。谢谢!
要在第一次出现之后继续搜索,您需要将搜索包装在循环中,并在findText()中提供第二个"from"参数。
下面是一个仅搜索 1 个单词的示例的开头...
function findBoldMarks(){
var body = DocumentApp.getActiveDocument().getBody();
var pattern = "bold0";
var searchResult = body.findText(pattern);
var style = {};
style[DocumentApp.Attribute.BOLD] = true;
while (searchResult !== null) {
var thisElement = searchResult.getElement();
var thisElementText = thisElement.asText();
thisElementText.setAttributes(searchResult.getStartOffset(), searchResult.getEndOffsetInclusive(),style);
// search for next match
searchResult = body.findText(pattern, searchResult);
}
}
。来自这篇文章中的一些答案。
也许有人可以修改以包含两个搜索词之间的文本。 findText()
似乎不接受正则表达式搜索模式,因此可能需要另一种方法来执行此操作。
相关文章:
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 收集一段时间内的EMG数据.建议JS
- 在一段时间内切换文本
- 如何停止字幕文本一段时间,然后继续
- HTTP服务器在一段时间后停止(Node.js)
- Hammer.js过了一段时间就停止工作了
- 在经过一段时间或满足条件后运行代码
- Meteor-在一段时间内解锁模板(按日期)
- 画布在一段时间后开始滞后
- 如何使用jquery/js/css逐步突出显示一段文本
- JS-在一段时间后水平移动图像
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- 表单提交在一段时间循环PHP,jquery
- 一段时间后生成回发
- 一段时间后自动点击提交按钮
- 将字符串作为一段 HTML/javascript 代码执行
- 如何每隔一段时间更改我网站的背景颜色
- 一段时间后调用函数,但只调用一次
- 一段时间后使用Javascript加载网页ASP.net
- 在for循环中另一个音频结束后播放一段时间的音频