【GAS】日付と時間の文字列から日時を取得する(正規表現) JavaScript

応用

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】変更した箇所の一覧を作成する(Gスプレッドシート)
  • スプレッドシートを変更した箇所の一覧を作成できます。
  • GASでセルの位置を"A1"形式で取得できます。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

      • JavaScriptで正規表現の使い方がわかります。
      • 文字列の日時からGoogleカレンダーに設定する日時が作成できます。

    なので、サクッとマスターして

    と答えてあげてください。

     

    課題

    2024/3/18(月)[13:00]の文字列を2024-3-28 13:00 として
    JavaScriptで認識させたい。

    スプレッドシート側で文字列から日付を取り出す場合

     

     

    動画はこちら

    【GAS】Googleスプレッドシート日付の文字列からGoogleカレンダーに登録する(正規表現)

    シートはこちら

    *クリックすることでシートが開きます。

    スクリプト

    function myFunction() {
    
    
      let day = '2024/3/18(月) [14:00]'
    
    
      const result = day.match(/(\d+)\/(\d+)\/(\d+)\D+\[(\d+):(\d+)\]/)
      console.log(result[1], result[2], result[3], result[4], result[5])
    
    
    
      // 開始日時を作成
      let startDate = new Date(result[1], result[2] - 1, result[3], result[4], result[5])
    
    
      console.log(startDate)
    
    
      // 終了日時を作成
      let endDate = new Date(result[1], result[2] - 1, result[3], Number(result[4]) + 1, result[5])
      console.log(endDate)
    
    
      const calendar = CalendarApp.getDefaultCalendar()
    
    
    
      // 予定を作成
      calendar.createEvent(
        "テスト",
        startDate,
        endDate
      )
    
    
    
    }

    ポイント

    日付の作成方法

    現在の日時で作成する場合
    let date = new Date()

    2024年2月18日 13:00 で作成する場合
    let date = new Date(2024,1,18,13,00)
    ※月は0から始まるので-1する

     

     

    正規表現

    mach関数内で正規表現を指定する場合は、/と/でくくります。

    主な正規表現

    記号 意味 備考
    . 改行以外の文字
    * 直前の文字の0文字以上の繰り返し
    + 直前の文字の1文字以上の繰り返し \d+ だと1文字以上の数字
    \d 数字 [0-9]と同じ
    \D 数字以外
    ( ) カッコ内が参照可能となる (\d+)で連続した数字の取得

     

    例)

    const result = day.match(/(\d+)\/(\d+)\/(\d+)\D*\[(\d+):(\d+)\]/)

    でresultにヒットした数字が取得できます。

    上記の場合、
    result[0]には全体でヒットした文字列
    result[1]最初の数字(\d)で取得した文字列(年)
    ・・・
    result[5]最後の数字(\d)で取得した文字列(分)

    となります。

    なのであとは、 new Dateの引数にresult[1]~result[5]を指定すればOKです。

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】2次元配列からGoogleカレンダーに登録する
  • GASで2次元配列の使い方がわかります。
  • 関数に引数を渡す方法がわかります。
  • GAS応用の一覧

    コメント

    タイトルとURLをコピーしました