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 メソッドの説明が原因で、少し混乱しました。

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 Script を使用して Google Document の特定の単語に色を付けることができますか?

于 2013-06-30T12:49:19.657 に答える