Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么Google文档脚本中body.replaceText函数的for循环停止了?_Javascript_Google Apps Script_Google Docs Api - Fatal编程技术网

Javascript 为什么Google文档脚本中body.replaceText函数的for循环停止了?

Javascript 为什么Google文档脚本中body.replaceText函数的for循环停止了?,javascript,google-apps-script,google-docs-api,Javascript,Google Apps Script,Google Docs Api,我正在尝试使用goolge文档并引用一个单独的电子表格来编写一个merg脚本 我现在被卡住了,它没有替换任何内容,forloop在I=0时停止 代码如下: function myMerger(body, myArrayOfWords, myArrayOfData){//this function will replace the terms found in myArrayOfWords with Logger.log(' just starter myMerger'); Logger

我正在尝试使用goolge文档并引用一个单独的电子表格来编写一个merg脚本

我现在被卡住了,它没有替换任何内容,forloop在I=0时停止

代码如下:

function myMerger(body, myArrayOfWords, myArrayOfData){//this function will replace the terms found in myArrayOfWords with 
  Logger.log(' just starter myMerger');
  Logger.log('myArrayOfWords.length is '+myArrayOfWords.length);
  Logger.log('myArrayOfData.length is ' +myArrayOfData.length);
  for(i=0;i<myArrayOfWords.length;++i){//for loop replaces will run the following code for each string within myArrayOfWords
    Logger.log('myMerger forloop instance number '+i);
    Logger.log('replacing '+myArrayOfWords[i]+' with '+myArrayOfData[i]);
    body.replaceText(myArrayOfWords[i], myArrayOfData[i]);
    //replaces the string in the document with a value from myArrayOfData
  }
}
函数MyMerge(body,MyArrayOfWord,myArrayOfData){//此函数将用替换MyArrayOfWord中的术语
log('juststartermymerge');
Logger.log('myArrayOfWords.length为'+myArrayOfWords.length);
Logger.log('myArrayOfData.length'是'+myArrayOfData.length');
对于(i=0;i而言,问题在于始终将要替换的字符串理解为正则表达式模式,并且
*
在正则表达式中具有特殊含义。您应该使用
#
或任何其他没有特殊含义的字符作为“分隔符”

无论如何,如果您不希望使用regexp,那么逃避一切是一种“良好做法”。如下所示:

function escapeRegex(s){返回s.replace(/[-\/\\^$*+.()[\]{}]/g,'\\$&');}
函数MyMerge(body,MyArrayOfWord,myArrayOfData){//此函数将用替换MyArrayOfWord中的术语
log('juststartermymerge');
Logger.log('myArrayOfWords.length为'+myArrayOfWords.length);
Logger.log('myArrayOfData.length'是'+myArrayOfData.length');

对于(i=0;iIt),似乎(*)导致了问题,但我不知道原因。我在运行此代码时没有看到任何错误,您是指终端上方显示的红色框吗?