【问题标题】:Search on a literal comma (string) in Google apps script在 Google Apps 脚本中搜索文字逗号(字符串)
【发布时间】:2022-06-10 21:12:06
【问题描述】:

我正在使用脚本从 Google 日历中检索项目并将其放入 Google 表格中。在我的议程中,我已将要以逗号分隔的方式检索的日历项目格式化如下: 客户、项目、活动。

现在,我只想检索标题中包含逗号的议程项目(或者更好的是,最终包含两个逗号),但我找不到将逗号作为字符串进行搜索的方法。我使用“搜索”功能,并用一个单词替换逗号,完美地只过滤带有该单词的项目。但是仅搜索逗号(或任何其他特殊字符)是行不通的。我尝试了几十种组合,包括 REGEX 表达式,但没有任何效果。部分有问题的代码:

function getCalendarEvents() {

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data"); 
  var cal = CalendarApp.getCalendarById("email@domain.nl"); 
  var eind = new Date;
  eind.setDate(eind.getDate()+1);
  var events = cal.getEvents(new Date("1/1/2022"), eind, {search: ','});

我需要在“搜索”命令之后使用什么代码来仅查找包含逗号的项目?

我尝试过的一些事情:

'\,' (filters out nothing)
'==\,' (filters out nothing)
'"\,"' (filters out a bit more, but I can't figure out what exactly)
'"==\,"' (same result as previous)

【问题讨论】:

  • 如何区分calendar items that I want to retrieve in a comma separated fashion中的逗号和agenda items that contain a comma in the title中的逗号?
  • 我不明白你的问题...我已经详细阐述了我的问题:我希望能够仅过滤掉包含逗号的 Google 日历项目...
  • 但是您说它们是逗号分隔的,并且您想要包含逗号的议程。这没有意义。
  • 我没有使用逗号作为分隔符,在代码中:我只想导入包含两个逗号的日历项目:不需要拆分或加入或类似的东西。如果我使用它来过滤掉具有正常字符的特定字符串的项目,则搜索命令可以正常工作。例如:如果我搜索“咖啡吧”,则只会显示我在咖啡吧的约会。完美运行。但是,如果我使用标点符号(点或逗号),它会忽略它并显示每个约会;还有那些不带逗号的。
  • 你试过 /,{2}/g.这是一个很好的测试站点regex

标签: string google-apps-script


【解决方案1】:

说明

我在日历中创建了 2 个标题中包含“,”的事件。此示例脚本将找到标题中包含的所有事件

代码.gs

function getCalanderEvent() { 
  try {
    let cal = CalendarApp.getDefaultCalendar();
    let start = new Date("1,1,2022");
    let end = new Date();
    let events = cal.getEvents(start,end);
    let match = events.filter( event =>  { if( event.getTitle().match(/,{2}/) !== null ) return event; } );
    if( match ) {
      match.forEach( event => console.log(event.getTitle()) );
    }
  }
  catch(err) {
    console.log(err)
  }
}

执行日志

6:09:19 AM  Notice  Execution started
6:09:20 AM  Info    Test,,event1
6:09:20 AM  Info    Test,,event2
6:09:20 AM  Notice  Execution completed

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多