1
function searchAndColorInRed() {
  var doc = DocumentApp.getActiveDocument();
  var textToHighlight = new RegExp('\(\d{0,4}\)');
  var highlightStyle = {};
  highlightStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FF0000';
  var paras = doc.getParagraphs();
  var textLocation = {};
  var i;

  for (i=0; i<paras.length; ++i) {
    textLocation = paras[i].findText(textToHighlight);
    if (textLocation != null && textLocation.getStartOffset() != -1) {
      textLocation.getElement().setAttributes(textLocation.getStartOffset(),textLocation.getEndOffsetInclusive(), highlightStyle);
    }
  }
};

有这个功能来搜索括号中的数字,如(6406)但是着色不起作用..我不知道为什么,有人可以帮我吗?

4

1 回答 1

0

AdamL 是对的。

由于 Google 文档对 findText 方法的描述,我有点困惑:

查找文本(搜索模式)

使用正则表达式在元素的内容中搜索指定的文本模式 。

我还设法通过\使用字符串转义所有内容来使其工作。

function searchAndColorInRed() {
  var doc = DocumentApp.getActiveDocument();
  var textToHighlight = "\\(\\d{0,4}\\)";
  var highlightStyle = {};
  highlightStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FF0000';
  var paras = doc.getParagraphs();
  var textLocation = {};
  var i;

  for (i=0; i<paras.length; ++i) {
    textLocation = paras[i].findText(textToHighlight);
    if (textLocation != null && textLocation.getStartOffset() != -1) {
      textLocation.getElement().setAttributes(textLocation.getStartOffset(),textLocation.getEndOffsetInclusive(), highlightStyle);
    }
  }
};

所以是的,最终正如 AdamL 所说,你可以使用'[(][0-9]{0,4}[)]'; 或者你可以使用 David 提出的,Mogsdad 的脚本似乎很方便我需要我可以使用 Google Apps 脚本为 Google 文档中的某些单词着色吗?

于 2013-06-30T12:49:19.657 回答