限制查找和替换整个单词谷歌表.gs功能

时间:2018-01-02 21:41:09

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

我有一个查找和替换函数,它替换了字符串中every的{​​{1}}实例,在VBA中它将是aa

有没有办法设置这个功能,以便它取代xlPart整个单词或VBA语言only

由于

xlWhole

1 个答案:

答案 0 :(得分:1)

Google Apps脚本基于JavaScript,因此您可以使用正则表达式分隔符\b

示例:

function test(){
  var sheetName = 'Elements';
  var to_replace = 'aa';
  var replace_with = 'ZZZZ';
  replaceInSheet(sheetName,to_replace,replace_with);

}

function replaceInSheet(sheetName,to_replace,replace_with){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var range = sheet.getDataRange();
  var values = range.getValues();
  var output = [];
  for(var row in values){
    output.push([]);
    for(var col in values[row]){
      var value = values[row][col]
         .replace(new RegExp('\\b'+to_replace+'\\b','g'),replace_with);
      output[row].push(value);
    }
  }
  range.setValues(output);
}

测试

输入

  |      A
--+----------
1 |aa
2 |bb aa ccZ
3 |aabbccZ
4 |bbaacc aa
5 |aaaaaaa

输出

  |      A
--+-------------
1 |ZZZZ
2 |bb ZZZZ ccZ
3 |aabbccZ
4 |bbaacc ZZZZ
5 |aaaaaaa