Google Apps脚本/ Javascript搜索和替换正则表达式无法正常工作

时间:2014-07-18 21:15:55

标签: javascript regex google-apps-script

我知道有很多类似的问题和答案,但我没有运气。

我只是想在Google Doc上运行一个正则表达式,并将其替换为大写字母。我有一个正常的表达式,一个简单的字符串替换工作,但我不能得到任何类型的正则表达式。我做错了什么?

function searchAndReplace() {
var bodyElement = DocumentApp.getActiveDocument().getBody();
var regExp = new RegExp(/[\n][\n]([^\n]+)[\n][^\n|\s]/gim);
bodyElement.replaceText(regExp, '$1'.toUpperCase());
}

1 个答案:

答案 0 :(得分:0)

replaceText documentation所示,它希望两个参数都有string。第一个将自动为您生成RegExp。因此,您可以使用正则表达式,但由于此语法限制,您无法将RegExp标记传递给它(在您的示例中为gim)。

此外,由于第二个参数也只接受一个字符串,你无法通知一个函数,这是你需要做出正确的toUpperCase(即使使用javascript构建,你的例子也是错误的) -in string.replace功能)。

从我刚刚做的测试中,使用“$&”替换字符串模式或“$#”也不起作用。

因此,要实现您所寻找的目标,您必须自己实施此搜索和替换(可能使用findText来帮助“搜索”部分。)