删除包含4个或更多数字的所有行

时间:2018-01-20 14:25:05

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

我管理公司的电子邮件列表,并希望删除所有包含4个或更多数字的行。我目前在Google表格上的脚本会删除包含某些关键字的行(例如"机器人"),但我也希望它删除电子邮件中包含4个或更多数字的所有行(例如" robot1234@email.com")。这可能吗?

以下是当前代码:

function removeKeywords() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  var rowsDeleted = 0;
  for (var i = 0; i <= numRows - 1; i++) {

var row = values[i];

if (row[0].toLowerCase().indexOf("robot") > -1) {
  sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
  rowsDeleted++;
}

1 个答案:

答案 0 :(得分:1)

使用正则表达式仅返回数字然后计算它们。如果4个或更多删除:

function removeKeywords() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();
  var rowsDeleted = 0;
  for (var i = 0; i <= numRows - 1; i++) {
    var row = values[i];
  if (row[0].toLowerCase().indexOf("robot") > -1) {
     sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
     rowsDeleted++;
  }
 var str=row[0].replace(/\D/g, '')//extract the numbers
 var len=str.length // determine lenght of number string
 if(len >=4 ){ //if 4 or more numbers delete
   sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
  rowsDeleted++;
}
  }}