【问题标题】:Delete all rows with 4 or more numbers删除所有包含 4 个或更多数字的行
【发布时间】:2018-01-20 14:25:04
【问题描述】:

我为我的公司管理一个电子邮件列表,并希望删除所有包含 4 个或更多数字的行。我目前在 Google 表格上的脚本会删除带有某些关键字的行(例如“robot”),但我也希望它删除电子邮件中包含 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++;
}

【问题讨论】:

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


    【解决方案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++;
    }
      }}
    

    【讨论】:

    • 如果这对您有用,请通过单击答案左侧的复选标记来批准答案。谢谢。
    • 我刚刚发布了另一个相关问题。我想知道你是否也能帮助我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2016-11-07
    • 2022-01-24
    相关资源
    最近更新 更多