在 Google 文档中查找与光标附近的 RegExp 匹配的文本?

Find text matching a RegExp near my cursor in Google Docs?

我有一个文档,其中包含可以与 this 正则表达式匹配的文本。我想在 Google 文档中找到与该正则表达式匹配的光标附近的文本,并向其添加超链接。

问题是无论出于何种原因,正则表达式似乎都找不到文本。结果,我收到错误,因为(本质)它无法添加指向 "null".

的超链接

Google 文档是 here(一些超链接已经手动添加,我正在尝试使其自动化,以便添加它们更简单)。

这是我目前使用的代码:

function Insert_Link() {
  var doc = DocumentApp.getActiveDocument();
  var Title = doc.getName();
  var elements = doc.getCursor().getSurroundingText();
  var element = elements.findText(/\d(-|\d|:|;|,)+/);
  var startOffset = element.getStartOffset();
  var endOffset = element.getEndOffsetInclusive();
  var selection = element.asText();
  var selectedText = selection.getText();
  selectedText = selectedText.substring(startOffset, endOffset + 1).trim();
  var reference = Title.replace(/(\(.*\))/, "").replace(/^\d{1,2}/, "") + " " + selectedText;
  Ref2Link(reference, selection, startOffset, endOffset);
}

我确定我犯了一些愚蠢的错误,但我不知道那是什么。如果有人能告诉我我做错了什么,我将不胜感激。

findText() 的文档说:

A subset of the JavaScript regular expression features are not fully supported, such as capture groups and mode modifiers.

此外,searchPattern 应该是字符串,而不是正则表达式。 (棘手!)

您的 RegExp 包含一个捕获组。这个将匹配相同的分组,没有捕获组:

var element = elements.findText("\d[-\d:;,]+");

请将“\”更改为双“\”。

我也更改了您的文档代码。

请试一试

ref:特殊字符 (JavaScript)

https://msdn.microsoft.com/en-us/library/2yfce773(v=vs.94).aspx