You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Sheets脚本修改请求:删除含4个及以上数字的行

如何在Google Sheets脚本中新增删除含4个及以上数字的邮件行功能?

当然可行!只需要在你现有脚本的判断逻辑里,新增一个检测邮件地址中数字数量的规则就行。我帮你修改了代码,同时保留原来的关键词删除功能:

修改后的完整代码

function removeKeywordsAndNumbers() { 
  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];
    var email = row[0].toLowerCase();
    // 检测是否包含关键词"robot"
    var hasKeyword = email.indexOf("robot") > -1;
    // 统计邮件地址中的数字数量,≥4则标记
    var digitCount = (email.match(/\d/g) || []).length;
    var hasTooManyDigits = digitCount >= 4;

    // 满足任一条件就删除该行
    if (hasKeyword || hasTooManyDigits) { 
      sheet.deleteRow((parseInt(i)+1) - rowsDeleted); 
      rowsDeleted++; 
    }
  }
}

关键修改说明

  • 新增了数字数量检测逻辑:用正则表达式/\d/g匹配邮件里的所有数字,match()会返回匹配到的数字数组,用|| []处理没有数字的情况(避免null报错),数组长度就是数字的总个数
  • 把判断条件改成了或逻辑:只要邮件包含"robot",或者数字数量≥4,就会被删除
  • 函数名改成了removeKeywordsAndNumbers,更贴合现在的功能,你也可以改回原来的removeKeywords

注意事项

  • 运行前建议先备份你的表格,避免误删重要数据
  • 如果你的邮件地址不在第1列(代码里的row[0]),记得把索引改成对应的列(比如第2列就是row[1]
  • 如果你的邮件列表行数特别多(几千行以上),可能需要分批处理或者设置时间驱动触发器,避免脚本超时

内容的提问来源于stack exchange,提问作者Ed Dev

火山引擎 最新活动