代码之家  ›  专栏  ›  技术社区  ›  beano

DocumentApp replaceText正则表达式语法

  •  0
  • beano  · 技术社区  · 7 年前

    我正在寻找正则表达式语法,将取代所有类型的特殊字符。

    我有一个谷歌文档,题目在<&书信电报;和gt&燃气轮机;标记。我试图用表单响应替换所有标记(为了简单起见,我在下面的脚本示例中用空白值“”替换它)。

    我当前的脚本:

    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()>>','');
     }
    

    当用户包含问号时,就会出现这种情况?,括号()或撇号“(我相信还有许多其他人)在他们的问题标题。

    1 回复  |  直到 7 年前
        1
  •  2
  •   beano    7 年前

    您可以考虑转义特殊字符,例如“*?在正则表达式中使用的()。以下是一个示例:

      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 + ">>",'');
      }