GDocs:在SelectedText中突出显示关键字

时间:2015-03-01 23:35:09

标签: google-apps-script google-docs google-docs-api

我正在尝试构建一个脚本,突出显示gdoc中所选文本中的预定义关键字。该功能在菜单按钮上调用。 我需要 1。逐字筛选所选文字,并将其与关键字进行比较。 2。访问和操作word-attributes,例如fontcolor和fontstyle(粗体等)。

到目前为止,我设法做 1。(虽然以一种非常不方便的方式)

function highlightKeywords() 
{
  var selection = DocumentApp.getActiveDocument().getSelection();

  if (selection) //not empty 
  {
    var elements = selection.getSelectedElements();

    // for each element (= text line)
    for (var i = 0; i < elements.length; i++) 
    {
      var textLine = elements[i].getElement().asText().getText();
      var words = [];
      words = textLine.split(" ");

      //for each word...
        //for each keyword..
          //compare: word = keyword ?
    }

    DocumentApp.getUi().alert('Highlighting keywords done!');
  } 
  else 
  {
    DocumentApp.getUi().alert('Please select some text to be highlighted!');
  }
}

问题是 2。,我不知道如何访问和操作gdoc中单词的属性。

您完成此任务的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果要更改属性(例如粗体),则可以使用函数setBold(startOffset,endOffsetInclusive,bold)作为变量文本行,其中包含&#34; getText()&#34;的结果。 https://developers.google.com/apps-script/reference/document/text#setBold(Integer,Integer,Boolean)

为此你只需要&#34; startOffset&#34;的单词索引。和endOffsetInclusive的单词长度

在这里你可以找到一个例子来说明如何获得字符串中某个单词的每次重复的索引。 http://www.w3schools.com/jsref/jsref_regexp_lastindex.asp