替换整个字符串

时间:2017-03-28 17:25:01

标签: javascript google-apps-script google-sheets

我对编码有点新意,我尝试通过谷歌应用程序使用它来学习javascript。我已经想出了一些试图完成当前项目的事情,但我似乎已经陷入困境。

我正在尝试通过谷歌工作表创建一个程序,有点像预算应用程序,我从我的银行导入数据,运行程序,它搜索数据,根据内容更改描述,并添加分类。

我找到了一个很好的查找和替换方法,但我遇到的问题是它只替换部分字符串而不是整个字符串。我想要它做的是搜索数据,如果它找到与我输入的一个案例相匹配的单词,它将删除整个字符串并用我指定的新描述替换它。

这是我到目前为止所拥有的

function replaceStrings(){

  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("D1:D" + sheet.getLastRow());
  var data = range.getValues();

  for (var i = 0; i<data.length; i++) {
    if (data[i][1] != "") {
     switch (data[i][1]) {
       case data.indexOf('MCDONALD\'S') >-1 :
         data[i][1].replace(data[i][1],'McDonalds');
         break;
     }
    }
   } 
range.setValues(data) 
}

这是基于我找到的查找和替换功能,不确定我是否可以包含&#34; data [i] [0]&#34;在这样的替换函数中,但我也尝试删除字符串并附加新文本,但这也没有用。

当我运行此操作时,我没有收到任何错误消息,但没有任何反应。

1 个答案:

答案 0 :(得分:0)

我不知道你的数据是什么样的,所以我使用了自己的一些,但这种技术对我来说似乎很好。我使用了getDataRange和我自己的索引,但你可以修改你需要的任何东西。或者,如果您希望可以共享电子表格,我可以根据您的具体要求进行自定义。

function replaceStrings()
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getDataRange()
  var data = range.getValues();

  for (var i = 0; i<data.length; i++) 
  {
      if(data[i][1].match(/firstMatch/))
      {
        data[i][1]='replacement1';
      }
      if(data[i][1].match(/secondMatch/))
      {
        data[i][1]='replacement2';
      }
  }
  range.setValues(data); 
}

您可以使用任何您想要的匹配字符串。我碰巧使用正则表达式,如果找到匹配,你可以用你想要的任何东西替换整个数据元素。