代码之家  ›  专栏  ›  技术社区  ›  Ed Dev

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

  •  -1
  • Ed Dev  · 技术社区  · 6 年前

    我管理公司的电子邮件列表,并希望删除所有具有4个或更多数字的行。我目前在Google Sheets上的脚本删除了带有特定关键字的行(例如“robot”),但我也希望它删除电子邮件中包含4个或更多数字的所有行(例如“robot”)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 回复  |  直到 6 年前
        1
  •  1
  •   Ed Nelson    6 年前

    使用regex只返回数字,然后进行计数。如果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++;
    }
      }}