在 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
我有一个文档,其中包含可以与 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