如何在Word Office JS插件中获取搜索目标文本的前一个单词
Word Office JS 获取搜索目标前的单词
针对段落文本"I am stuck here.",要获取搜索目标"here"之前的单词"stuck",可以通过以下步骤实现:
- 执行搜索获取目标文本的Range对象
- 基于目标Range创建新范围,定位到前一个单词
- 提取该范围的文本
完整代码示例:
// 搜索目标文本 var foundItems = context.document.body.search('here', { matchCase: false, matchWholeWord: true }); // 加载搜索结果的items属性 await foundItems.load('items'); await context.sync(); // 处理搜索结果 if (foundItems.items.length > 0) { // 获取第一个匹配项的Range const targetRange = foundItems.items[0].getRange(); // 创建新Range用于定位前一个单词 const prevWordRange = targetRange.getRange(); // 将Range起始位置向左移动1个单词单位 prevWordRange.moveStart('Word', -1); // 将Range结束位置设置为原目标Range的起始位置 prevWordRange.setEnd(targetRange.start); // 加载该Range的文本内容 prevWordRange.load('text'); await context.sync(); // 提取并处理文本(去除多余空格) const previousWord = prevWordRange.text.trim(); console.log(previousWord); // 输出: stuck }
关键说明
- 若存在多个匹配项,可循环遍历
foundItems.items逐个处理 - 使用
moveStart方法基于Word单位移动范围,确保准确定位到前一个单词 trim()用于移除Range可能包含的空格字符,保证提取结果为纯单词
内容的提问来源于stack exchange,提问作者Gocool Ad
相关产品推荐
相关产品推荐

