【问题标题】:filter google calendar by regex using google app script使用谷歌应用脚​​本通过正则表达式过滤谷歌日历
【发布时间】:2018-11-26 10:42:54
【问题描述】:

我只想在我的谷歌日历中显示某些条目。 我想为此使用正则表达式 (^([0-9]+day).

在我的原型中我充满了错误:

类型错误:“0”

function myFunction() {
  var cal = CalendarApp.getCalendarById("sl5something@gmail.com")
  var now = new Date();
  var events = cal.getEventsForDay(now)
  for(var i = 0; i<events.length;i++){
    title = events[i].getTitle()
    var ar = title.match(/^([0-9]+day)/)
      var preTitle = ar[0]; // <===== TypeError: "1"
      var postTitle = ar[1];
      if(preTitle){
        Browser.msgBox(preTitle + ":" + postTitle)
      }
  }
}

【问题讨论】:

  • 检查ar是否不为空且长度为2
  • 我把它放在下面的答案中。如果想在下面给自己发一个答案,我会给你支票。
  • 谢谢。但是你的回答就足够了。我建议您在代码 sn-p 之前添加一个简单的解释,说明它为什么起作用。

标签: javascript regex google-apps-script


【解决方案1】:

这按预期工作:

function myFunction() {
  var cal = CalendarApp.getCalendarById("someEmail@gmail.com")
  var now = new Date();
  var events = cal.getEventsForDay(now)
  for(var i = 0; i<events.length;i++){
    title = events[i].getTitle()
    var ar = title.match(/^([0-9]+day)(.*)/)
    if(!ar) // <==== this helps
      continue
    var preTitle = ar[1]; // <===== no TypeError: "1"
    var postTitle = ar[2];
    Browser.msgBox(preTitle + " ### " + postTitle)
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2016-10-08
    • 2017-12-21
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多