我正在寻找将替换所有类型的特殊字符的正则表达式语法。
我有一个Google文档,其中的问题标题位于<<和>>标记。我试图用表单响应替换所有标记(为简单起见,我将在下面的脚本示例中用空值替换它)。
我目前的剧本:
var form = FormApp.getActiveForm();
var body = DocumentApp.openById('').getBody();
var items = form.getItems();
for(i=0;i<items.length;i++){
body.replaceText('<<items[i].getTitle()>>','');
}
如果用户在问题标题中包含问号?,方括号()或撇号'(我相信很多其他人),则会失败。
答案 0 :(得分:1)
您可以考虑转义特殊字符,例如&#39; *?()|&#39;在正则表达式中使用。这是一个样本:
var form = FormApp.getActiveForm();
var body = DocumentApp.openById('').getBody();
var items = form.getItems();
for(i=0;i<items.length;i++){
var title = items[i].getTitle();
title = title.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
body.replaceText("<<" + title + ">>",'');
}