Javascript 应用程序脚本以匹配包含ID的工作表名称并使其可见

Javascript 应用程序脚本以匹配包含ID的工作表名称并使其可见,javascript,regex,google-apps-script,string-matching,Javascript,Regex,Google Apps Script,String Matching,我正在尝试修改此应用程序脚本,以便能够搜索包含特定ID(例如123)的工作表,并使该工作表可见/激活(如果该工作表名为abc123def) 如果我输入工作表的全名abc123def,下面的代码效果很好,但我只想输入工作表名称的一部分,即ID,在本例中为123 这在PowerShell中适用于我: $match = "123" $text = Get-Content -Path $fulltext | Select-String -Pattern $match $text | Out-File -

我正在尝试修改此应用程序脚本,以便能够搜索包含特定ID(例如123)的工作表,并使该工作表可见/激活(如果该工作表名为
abc123def

如果我输入工作表的全名
abc123def
,下面的代码效果很好,但我只想输入工作表名称的一部分,即ID,在本例中为
123

这在PowerShell中适用于我:

$match = "123"
$text = Get-Content -Path $fulltext | Select-String -Pattern $match
$text | Out-File -FilePath $output
但我不确定如何为以下应用程序脚本进行类似匹配:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuItems=[{name: 'Go To Tab', functionName: 'goToTab'} ];
  ss.addMenu('Script', menuItems);
};

function goToTab() {
  var name = Browser.inputBox('Enter Tab Name:','',Browser.Buttons.OK_CANCEL);
  try {
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name).activate();
  }
  catch(e) {
    Browser.msgBox('Sheet named: "' + name + '" does not exists!');
  }
};
试试这个:

function onOpen() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var menuItems = [{
        name: 'Go To Tab',
        functionName: 'goToTab'
    }];
    ss.addMenu('Script', menuItems);
};

function goToTab() {
    var name = Browser.inputBox('Enter Tab Name:', '', Browser.Buttons.OK_CANCEL);
    if (name) {
        try {
            //create a regex out of "name"
            regexp = new RegExp(name, 'g');
            //get all the sheets
            var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
            //go through all the sheets
            for (var i = 0; i < sheets.length; i++) {
                //if sheet name matches the user entry then activate and go out of the loop
                if (sheets[i].getName().match(regexp)) {
                    sheets[i].activate();
                    break;
                }
            }
        } catch (e) {
            Browser.msgBox('Sheet named: "' + name + '" does not exists!');
        }
    }
};
函数onOpen(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); 变量菜单项=[{ 名称:“转到选项卡”, 函数名:“goToTab” }]; ss.addMenu('Script',menuItems); }; 函数goToTab(){ var name=Browser.inputBox('输入选项卡名称:','',Browser.Buttons.OK\u取消); 如果(姓名){ 试一试{ //用“name”创建正则表达式 regexp=新的regexp(名称“g”); //把所有的床单都拿来 var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets(); //检查所有的床单 对于(变量i=0;i非常感谢!:)