[GAS]Switch文と正規表現を組み合わせて使用する方法について

GAS

どうも。櫻庭です。

今回はSwitch文と正規表現を組み合わせて使う方法ついて書き留めていきたいと思います。

ちなみに、

前回のBlogではif文と正規表現を組み合わせて仕様する方法について解説しました。

Switch文とは?

正規表現との組み合わせ所か、Switch文を理解していないという人もいると思うのでSwitch文について解説したいと思います。

Switch文とは、条件式の1つで定義した条件に一致する場合にその処理を実行するというものです。

使用例を示した方がわかりやすいと思うので、以下に示します。

const pref = "Sapporo";

switch (pref){
  case "Tokyo":
    console.log("東京です");
    break;
  case "Sapporo":
    console.log("札幌です");
    break;
}
result:”札幌です”

正規表現と組み合わせて使用する例

では、↑で示したSwitch文を正規表現と組み合わせて使用する例について書いていきます。

例えばですが、空港コード+出発日というデータがあったとします。

そこから、空港コードだけ抽出して空港名を出力したい場合は以下のコードとなります。

const airportCodeAndFlightDate = "CTS201211";

switch (true){
  case(/CTS\d{6}/).test(airportCodeAndFlightDate):
    console.log("千歳空港です。");
    break;
  case(/KIX\d{6}/).test(airportCodeAndFlightDate):
    console.log("関西国際空港です");
    break;
  case(/NRT\d{6}/).test(airportCodeAndFlightDate):
    console.log("成田国際空港です");
    break;
  case(/SIN\d{6}/).test(airportCodeAndFlightDate):
    console.log("チャンギ国際空港です");
    break;
}
result:"千歳空港です。"

test()メソッドの利用

test()メソッドを利用することで正規表現(ここでは空港コード+六桁の数字としています)に一致すればTrueを、不一致であればFalseを返すようになります。

そのため、Switch文の条件にはtrueと入力してあります。

今回の場合は、フライトコードがCTSなので、(/CTS\d{6}/)だけがtrueを返しこの結果となりました。

if文とSwitch分の使い分け

ここまでのブログを読んで

「これってif文でもelse if を使えばできるけど、どう使い分ければいい?」

と疑問に思った方もおられると思いますので解説しておきます。

これは個人的な意見ですが、条件が4つ以上となるのであれば、Swich文を使った方が視認性がよくなるもしくは、今回紹介した例のように条件の内容がほぼ同じなのであれば、Switch文の方が見やすいと思います。

このどちらにも当てはまらない場合はif文の方が良いというのが個人的な見解です。

まとめ

今回の記事ではSwitch文と正規表現を組み合わせて使用する方法について説明しました。

今回紹介はしていませんが、SSから取得した複数のID等から何か任意の事を定義したい場合、今回紹介した構文にfor文やfor of文を組み合わせて使うことがよくあるはずですよ。

Comments

Copied title and URL