繁体   English   中英

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

[英]How to check if a sheet name / string contains both letters and numbers in Google Apps Script - JavaScript

我有一个用于检查工作表名称的应用程序脚本代码。 我的项目中有两种类型的工作表名称-(i)只有字母(例如主)和(ii)字母和数字在一起(PHY4125)。 该代码将检查第二个选项。 我的 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或任意组合As23AbcAB23423 ,将评估为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
  
  }
     
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM