在Google Docs应用程序脚本中循环查找和替换 [英] Find and Replace in a loop in Google Docs App Script

查看:22
本文介绍了在Google Docs应用程序脚本中循环查找和替换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我经常写研究论文,要求在文本中引用数字放在括号中-例如:这是一句引语[1]。";

当我写论文时,我使用字母而不是数字,这样我就可以在以后查找&;替换,因为我可能会在这里和那里添加引文,我不想为了保持它们的顺序而对每个引文重新编号。

如何在循环中搜索整个Google文档,并用数字替换每个字母?例如,将[a]替换为[1],将[b]替换为[2]等。我尝试了此代码,但它将文档中的每个字符都替换为括号中的随机数字。我不清楚转义方括号的规则,所以我也尝试过在每个方括号前加

function myFunction() {

    var doc = DocumentApp.getActiveDocument();
    body = doc.getBody();

     var alphabet = ["[a]", "[b]", "[c]", "[d]", "[e]", "[f]", "[g]", "[h]", "[i]", "[j]", "[k]", "[l]", "[m]", "[n]", "[o]", "[p]", "[q]", "[r]", "[s]", "[t]", "[u]", "[v]", "[w]", "[x]", "[y]", "[z]", "[aa]", "[bb]", "[cc]", "[dd]", "[ee]", "[ff]", "[gg]", "[hh]", "[ii]", "[jj]", "[kk]", "[ll]", "[mm]", "[nn]", "[oo]", "[pp]", "[qq]", "[rr]", "[ss]", "[tt]", "[uu]", "[vv]", "[ww]", "[xx]", "[yy]", "[zz]"]; 
      
      for (i = 0; i < alphabet.length; i++) { 
       num = i+1;
       newText = "["+num+"]";
    
    body.replaceText(alphabet[i], newText);
    }
}

推荐答案

看起来您需要对括号进行双重转义:

function testReplace(){
  var doc = DocumentApp.getActiveDocument();
  body = doc.getBody();


  var alphabet = ["\[a\]", "\[b\]", "[c]"]; // c is a test-case


  for (i = 0; i < alphabet.length; i++) { 
    num = i+1;
    newText = "["+num+"]";

    body.replaceText(alphabet[i], newText);
  }
}

之前:

A a [a]

B b [b]

C c [c]

之后:

A a [1]

B b [2]

C [3] [[3]]

这篇关于在Google Docs应用程序脚本中循环查找和替换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆