【问题标题】:google apps script invalid argument: searchPattern谷歌应用程序脚本无效参数:searchPattern
【发布时间】:2019-11-12 16:52:35
【问题描述】:

我不确定发生了什么。我的脚本工作正常,但现在我得到一个无效的参数:searchPattern 错误:var rangeElement = copyBody.findText(email);

function form(e) {

  var ss = SpreadsheetApp.openById('xxxxxx');

  var email = e.values[1];

var docTemplate = 'yyyyyyyy';
var newEstimate = 'firstName' + 'lastName';
  var copyId = DriveApp.getFileById(docTemplate).makeCopy(newEstimate).getId(); // Get document template, copy it, and save the Doc’s id
  var copyDoc = DocumentApp.openById(copyId);   // Open the temporary document
  var copyBody = copyDoc.getBody(); // Get the document’s body section
  copyBody.replaceText('<Email>', email);

 var mailto = 'mailto:' + email; 
  var rangeElement = copyBody.findText(email);
  var startOffset = rangeElement.getStartOffset();
  var endOffset = rangeElement.getEndOffsetInclusive();
  var text = rangeElement.getElement().asText();
  if (rangeElement.isPartial()) { text.setLinkUrl(startOffset,endOffset,mailto); } else { text.setLinkUrl(mailto); }
)

有什么想法吗?

【问题讨论】:

  • 邮件失败时是什么样子的?提示:它通过 replaceText() 方法在您的文档中。
  • 它正确地制作了模板文档的副本并替换了适当的文本和链接......但它也制作了模板文档的附加副本,其中没有任何内容代替占位符文本:'' 为空...

标签: google-apps-script


【解决方案1】:

您的错误消息是说您的正则表达式模式“”无效。

如果您查看documentation,您会发现此参数的语法需要RE2 支持。

尝试用“[EMAIL]”之类的内容更改您要替换的文本。

此外,如果电子邮件是 null 或 "",您可能需要添加错误检查,这样您就不会执行无效操作。

【讨论】:

  • 这似乎奏效了。诡异的。我有代码也替换了地址,没有括号就不会出错。 。 var city = e.values[2]; var zip= e.values[3]; var address = city + zip; copyBody.replaceText('&lt;address&gt;', address); var replaceme = copyBody.findText(address);
猜你喜欢
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多