日付、日時の正規表現についてまとめ(基礎知識・正規表現例)
日付、日時の正規表現についてまとめ(基礎知識・正規表現例):
どうしても正規表現ってごちゃごちゃ文字が並んでいるイメージを抱いてしまい、
見た瞬間に思考が停止してしまいがちです。
ですが、簡単な表現を最初に書いて、([0-9]など、ぱっと見で意味が理解できる箇所)
正規表現チェッカーでその都度、動作確認をしていきながら書いていくのが
一番効率的だと漸く気がつけました。
参考リンク
https://javascript.programmer-reference.com/js-regexp-sample/
https://www.megasoft.co.jp/mifes/seiki/meta.html
https://www.sejuku.net/blog/22396
まえがき
- PHP、JavaScriptで判定
( 正規表現チェッカーを使用
http://okumocchi.jp/php/re.php) - 正規表現について、どうしても苦手意識があり、
調べて出てくる多数の正規表現サンプルを見ても、
やはり書くのに時間がかかってしまう...理解ができない...
といったことがあったので、今後忘れないようにメモとして書かせて頂きます。 -
「正しい形式しか許容しない」というのが前提になっております。
例(単体使用)
- 「Y/m/d」ex).2018/01/01
-
^
→開始 -
$
→終了 -
[0-9]
→0~9の数字 - 「
/
」の前にバックスラッシュが必要 - { }の中に、数字の桁数を指定
- 年は西暦のため、4文字→
{4}
時間、分は2文字→{2}
(+
(1回以上)だと2018/01/111111も許容してしまう
先頭の0を表示しない場合は、1文字以上2文字以下となるため{1,2}
)
/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/
- 「h:i」 ex).02:11
/^[0-9]{2}:[0-9]{2}$/
- 「Y/m/d - Y/m/d」(範囲指定)ex).2018/01/01 - 2018/01/02
-
\s
→空白文字
/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}\s-\s[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/
例(組み合わせ)
- 「Y/m/d - Y/m/d」か「Y/m/d h:i」どちらも許容する
- 「- Y/m/d」と「h:i」を
()?
でくくる -
?
→0回か1回
/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}\s(-\s[0-9]{4}\/[0-9]{2}\/[0-9]{2})?([0-9]{2}:[0-9]{2})?$/
どうしても正規表現ってごちゃごちゃ文字が並んでいるイメージを抱いてしまい、
見た瞬間に思考が停止してしまいがちです。
ですが、簡単な表現を最初に書いて、([0-9]など、ぱっと見で意味が理解できる箇所)
正規表現チェッカーでその都度、動作確認をしていきながら書いていくのが
一番効率的だと漸く気がつけました。
参考リンク
https://javascript.programmer-reference.com/js-regexp-sample/
https://www.megasoft.co.jp/mifes/seiki/meta.html
https://www.sejuku.net/blog/22396
コメント
コメントを投稿