如何在Google Apps Script-JavaScript中检查工作表名称/字符串是否同时包含字母和数字



我有一个用于检查工作表名称的应用程序脚本代码。在我的项目中有两种类型的表格名称——(i(只有字母表(例如master(和(ii(字母表和数字在一起(PHY4125(。该代码将检查第2个选项。我的IF条件经常不起作用!有其他方法可以完成同样的任务吗?

我的代码:

function autoConvert(e) {    
var ss=e.source;
var sh=ss.getActiveSheet();
var key=sh.getName();
var lastRow=sh.getLastRow();

**if (key.indexOf("0")>-1 || key.indexOf("1")>-1 || key.indexOf("2")>-1 || key.indexOf("3")>-1 || key.indexOf("4")>-1 
|| key.indexOf("5")>-1 || key.indexOf("6")>-1 || key.indexOf("7")>-1 || key.indexOf("8")>-1 || key.indexOf("9")>-1){** 
//Body of the code block
}
}

说明:

正则表达式:

/^(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+$/

将检查字符串key是否同时包含字母数字。

因此这个表达式:

if(key.match(/^(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+$/))

对于AB23423ab2342323233ab24443AB或任何组合As23Abc等情况,将评估为true


解决方案:

function autoConvert(e) {    
var ss=e.source;
var sh=ss.getActiveSheet();
var key=sh.getName();
var lastRow=sh.getLastRow();
if(key.match(/^(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+$/)){

//Body of the code block

}

}

最新更新