我管理公司的电子邮件列表,并希望删除所有包含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++;
}
答案 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++;
}
}}