Google apps script Google文档中的body.replaceText()

Google apps script Google文档中的body.replaceText(),google-apps-script,google-docs,Google Apps Script,Google Docs,我编写了一个函数,用于在文档中使用spinText同义词。我在文件中有这样一段文字:{你好}托马斯|马修|安德鲁} 函数为我提供了两个数组:toreplace[],同义词[],但 for (var i = 0; i < rangeElements.length; ++i) { body.replaceText(toreplace[i],synonyms[i]); } for(变量i=0;i

我编写了一个函数,用于在文档中使用spinText同义词。我在文件中有这样一段文字:{你好}托马斯|马修|安德鲁}

函数为我提供了两个数组:toreplace[],同义词[],但

for (var i = 0; i < rangeElements.length; ++i) {

  body.replaceText(toreplace[i],synonyms[i]); 

}
for(变量i=0;i
给我一个这样的文本:嗨|嗨安德鲁先生|安德鲁|安德鲁,但我想得到“嗨安德鲁先生”

我尝试了Logger.log(toreplace[0]),得到了“{Hello | Hi}”,Logger.log(同义词[0])显示“Hi”,所以应该翻译成body.replaceText({Hello | Hi},'Hi')

我做错了什么

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

var rangeElements = [];
var rangeElement=null;
var start=[];
var end=[];
var lentabs=[];
var str;
var synonyms=[];
var toreplace=[];
var x=0;

while (rangeElement = body.findText('[{].+?[}]',rangeElement))
{
  rangeElements.push(rangeElement);

  start.push(rangeElement.getStartOffset());
  end.push(rangeElement.getEndOffsetInclusive());

}  


  for (var i = 0; i < rangeElements.length; ++i) {


    lentabs[i]=rangeElements[i].getElement().getText().substring(start[i]+1, end[i]).split('|').length

    toreplace[i]=rangeElements[i].getElement().getText().substring(start[i], end[i]+1);


    min=0;
    max=lentabs[i]-1;

    rand=Math.floor(Math.random()*(max-min+1)+min)
    synonyms.push(rangeElements[i].getElement().getText().substring(start[i]+1, end[i]).split('|')[rand]);

}


for (var i = 0; i < rangeElements.length; ++i) {

  body.replaceText(toreplace[i],synonyms[i]); 

}

}
函数同义化(){
var body=DocumentApp.getActiveDocument().getBody();
var rangeElements=[];
var rangeElement=null;
var start=[];
var-end=[];
变量lentabs=[];
var-str;
var同义词=[];
var-toreplace=[];
var x=0;
而(rangeElement=body.findText(“[{].+?[}]”,rangeElement))
{
rangeElement.push(rangeElement);
start.push(rangeElement.getStartOffset());
end.push(rangeElement.getEndOffsetInclusive());
}  
对于(变量i=0;i
好的。问题在于“|”被视为正则表达式模式。我将文档中的文本更改为“{Hello#Hi}Mr{Thomas#Mathew#Andrew}”,现在它工作正常。

好。问题在于“|”被视为正则表达式模式。我将文件中的文本更改为“{你好#你好}托马斯#马修#安德鲁}先生”,现在它工作正常