如何替换超链接的 Google 文档中所有发现的事件

How to replace all found ocurrences in a Google Docs for an hyperlink

我们实际上想知道您如何在文档文本中找到圣经经文并将其替换为网络上的 URL 经文。

例如,如果您有一个 "Jn 3.1" 文本,它将被替换为这样的超级链接:

Text= Jn 3.1
Link= https://www.bible.com/1/jn.3.1

我们虽然在使用 Body.replaceText(searchPattern, replacement) 但你不能用它来插入超链接。

而且我们还要想到诗句的字数是可以变化的,比如可以是:

Jn 1.3

也就是6个字符或者可以是

John 10.10

也就是10个字符。我认为这可以用正则表达式来覆盖(如果我们能够将它们与解决方案一起使用,那么如果解决方案覆盖它就无关紧要了。

对于此类修改,您将不得不使用 Appsscript 函数。它们的工作方式与普通 javascript 函数相同,但在这里您可以直接使用文本。

对于这种情况,替换函数是:replaceText(searchPattern, replacement)

这就是您在文档中搜索单词然后替换文本的方式。

function myFunction() {
  var doc = DocumentApp.getActiveDocument();

  var word = 'example';
  var rep = 'replacement';

  var body = doc.getBody().editAsText().findText(word);
  var elem = body.getElement().asText();

  var idx = elem.editAsText().getText().indexOf(word);

  elem.replaceText(word, rep);
} 

所以基本上您会找到包含所需单词的元素,然后您将获得该元素,然后您将编辑该元素中包含的文本。

我个人不喜欢在文本中放置完整的 url,而是我会使用和内联 link 所以在这种情况下 "Jn 1.3" 将是 hyper[=29= 的文本].

为此,您可以使用:

而不是 replaceText 行
var result = elem.setLinkUrl(idx, idx+word.length -1, 'www.google.com');

阅读会更容易。希望对你有帮助。