web-dev-qa-db-ja.com

フッターの日付を更新し、内容をクリアしないでください

私が使用するGoogle Docテンプレート用のこの素敵なコードは、私がそれをするために必要なことを正確に行いますexceptそれは日付だけでなく、フッターのすべてのコンテンツをクリアします。私のコピーの残りではなく、前の日付だけをクリアする方法はありますか?文書を開いたときに著作権データを自動化したいと考えています。

function onOpen() {
  var doc = DocumentApp.getActiveDocument();
  var footer = doc.getFooter();  //gets the footer
  footer.clear();  //clears all data in footer

  //Get date
  var date = new Date();
  var year = date.getFullYear();

  footer.appendParagraph(FullYear);  //adds date to footer
 }
5
KCSunshines

これは基本的に replaceText の目的です:

function onOpen() {
  var doc = DocumentApp.getActiveDocument();
  var footer = doc.getFooter();  //gets the footer
  var date = new Date();
  var year = date.getFullYear(); // gets the year
  footer.replaceText("\\b20\\d\\d\\b", year);  // replaces any 20xx by the year
}

正規表現"\\b20\\d\\d\\b"は、バックスラッシュがエスケープされるため読みにくいです。これは、単語の境界に一致する\b20\d\d\bを意味し、\bの後に文字20が続き、その後に任意の2桁の文字(0-9)が続き、その後に単語の境界が続きます。単語の境界は、「 Coffeen、IL 62017 」のように、置換が行われないことを意味します。

3
user135384