[GAS]if文と正規表現を組み合わせて活用する方法

GAS

どうも。櫻庭です。

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

ただ、「if文の書き方もちょっと危うい」「正規表現も危うい」という方もおられると思うので、if文について/正規表現について少し綴った後にif文と正規表現を組み合わせて活用する方法について掲載していこうと思います。

通常のif文の書き方について

単純にif文について書くと言っても深堀するとさまざまな書き方があります。

ただ今回の目的は「if文」と「正規表現」を組み合わせて活用する方法の紹介なので、

一番シンプルに活用する方法についてお伝えします。

//if文の基本は以下の書き方です
const a = 4;
const b = 5;

//ここからif文
if(a <= b){
console.log(“bはaより大きい数字です”);
}
//result:bはaより大きい数字です

このように「if(条件){」に該当する場合のみif文内の{}のスクリプトを実行する仕様です。

正規表現について

正規表現についても深堀をすると長くなってしまいますので、概要のみ記載します。

正規表現とは、

・文字列の集合を一つの文字列で表現する方法

なのですが、具体的な活用方法や活用例を出した方がわかりやすいと思いますので、

スクリプトベースで提示していきます。

//郵便番号の下4桁の数字を個人情報管理のためXXXXに置き換えたい
const number        =  “093-1249”;
const newNumber =  number.replace(/-\d{4}/, “-XXXX”);
//↑は正規表現でハイフン+4桁の数字

console.log(newNumber);
//result:093-XXXX

このようにReplace()メソッドを使用して、「ハイフン+4桁の数字」のデータを「-XXXX」に置き換えています。

ここで「それだったら単純に”-1249”と入力すればいいのでは?」

と思う方もいそうですが、例えばこれがfor文を使って複数の郵便番号を一回の処理で全て置き換えたい場合はどうしますか? そのような際正規表現を活用すると便利です。

【本題】if文と正規表現を組み合わせて活用する方法

if文と正規表現を組み合わせて活用する方法も色々とありますが、ここでは1つスクリプトを紹介します。

const array = [{"型番":"W223","年式":1992},
             {"型番":"E245","年式":1993},
             {"型番":"S225","年式":1993}]:

for(const element of Object.keys(array)){
  if(array[element]["型番"].match(/W\d{3}/)){ //matchのカッコ内はWと3つの数字を意味
    console.log(array[element]["型番"]);
  }}
result:W223

このように型番がWで始まるObject配列の一部の値を取り出すことができます。

まとめ

スプレッドシートから取り出したデータを処理する際に一定の規則性のある値に関しては

正規表現を活用するのがおすすめです。

Comments

Copied title and URL