web-dev-qa-db-ja.com

yyyy-mm-ddの正規表現の日付検証

日付形式yyyy-mm-ddの正規表現は何ですか?

Edittextからの電子メールを検証し、正規表現と一致するかどうかを確認します。

32
Romaine Herrera

これは、yyyy-mm-ddyyyy-m-dにも一致します。

^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$

Regular expression visualization

yyyy-mm-ddに完全に一致するものを探している場合は、これを試してください

^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$

または、The date is 2017-11-30のような文字列内で日付を見つける必要がある場合は、これを使用します

\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])*

https://regex101.com/r/acvpss/1

80
Vinod

簡単なものは

\d{4}-\d{2}-\d{2}

Regular expression visualization

Debuggexデモ

ただし、これは月を1〜12、日を1〜31に制限しません。

かなり賢い方法で、他の答えのようなより複雑なチェックがあります。それにもかかわらず、有効な日付を確認する必要があります。これは、月に28日、30日、または31日があるかどうかの確認がないためです。

18
wumpz
4
Hamid Shatu

この式をテストできます:

^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$

説明:
yyyy-mm-dd、yyyy mm dd、またはyyyy/mm/ddの日付を検証します

日がその月の有効な範囲内にあることを確認します-うるう年の2月29日は検証しません。

一致(テスト済み):0001-12-31 | 9999 09 30 | 2002/03/03

3
zainoz.zaini