Googleスプレッドシートに「時刻」データを入力する業務があります。
人間系で入力間違いを検出させたく、入力したものが「時刻」であるかを判定するカスタム関数を作りたいです。
※私はVBAは経験が長いのですが、GASは初心者にて難儀をしています。
実現したいこと
・googleスプレッドシートで動作する時刻判定のカスタム関数を作成したいです。
・00:00 で入力した場合には True、0000形式で入力したら False、 9/1、2022/9/1 と入力したらfalseにしたいです。
発生している問題・エラーメッセージ
・以下のようなコードを作成しました。
・9/1、2022/9/1 と入力した場合にも、true判定になってしまい、ここを
なんとかfalseにする方法を探しています。
該当のソースコード
1function isHHMM(d){ 2 if (Object.prototype.toString.call(d) == "[object Date]"){ 3 return(1) 4 } 5 else{ 6 return(0) 7 } 8
qnoirさん
ありがとうございます。 期待した動作を確認しました。
match関数の使い方が理解ができず、調べながら理解を深めております。
aa:bb の時間表記のうち、aa 部分の表記を ((0?|1)[0-9]|2[0-3]) としていますが、
この部分について、2点お教えいただけませんでしょうか。
・外のカッコはなんで必要なのか。
((0?|1)[0-9]|2[0-3]) ではなく、(0?|1)[0-9]|2[0-3] ではいけない理由
・中のカッコの指定をしていただいている理由
(0?|1)[0-9] となっていますが、[0?|1][0-9] ではいけない理由
以上よろしくお願いいたします。
