我正在尝试为 Google 文档编写一个附加组件的一部分,该插件使用 replaceText
消除选定文本中的换行符。明显的text.replaceText("n","");
给出了错误Invalid argument: searchPattern
。我在text.replaceText("r","");
上遇到了同样的错误.以下尝试不执行任何操作:text.replaceText("/n/","");
、text.replaceText("/r/","");
。我不知道为什么Google App Script不允许在正则表达式中识别换行符。
我知道已经有一个附加组件可以做到这一点,但我想将此功能合并到我的附加组件中。
即使使用基本
DocumentApp.getActiveDocument().getBody().textReplace("n","");
我的全部功能:
function removeLineBreaks() {
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var elements = selection.getRangeElements();
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
// Only deal with text elements
if (element.getElement().editAsText) {
var text = element.getElement().editAsText();
if (element.isPartial()) {
text.replaceText("n","");
}
// Deal with fully selected text
else {
text.replaceText("n","");
}
}
}
}
// No text selected
else {
DocumentApp.getUi().alert('No text selected. Please select some text and try again.');
}
}
似乎在 replaceText
中,要删除使用 Shift-ENTER 输入的软返回,您可以使用 v
:
.replaceText("\v+", "")
如果要删除所有"其他"控制字符(C0、DEL 和 C1 控制代码),可以使用
.replaceText("\p{Cc}+", "")
请注意,v
模式是JavaScript正则表达式引擎支持的结构,并且被大多数Google产品中使用的RE2正则表达式库认为与垂直制表符(≡