javascriptの任意の形式の日付の正規表現
形式には、dd / mm/yyyyまたはmm/dd/yyyyまたはyyyy/dd/mmまたはdd-yy-mmmmまたはddmmyyyyなどが含まれます。
誰か助けてもらえますか?
javascriptの任意の形式の日付の正規表現
形式には、dd / mm/yyyyまたはmm/dd/yyyyまたはyyyy/dd/mmまたはdd-yy-mmmmまたはddmmyyyyなどが含まれます。
誰か助けてもらえますか?
「完璧な」解析はありませんが、JavaScriptで日付を処理するためにdatejsのようなものを使用することをお勧めします。さまざまなフォーマットをサポートする多数の解析ルーチンを処理できます。
うるう年を考慮した日付の正規表現。as3用に作成しましたが、jsとas3はどちらもECMAScriptの派生物であるため、JSでも正常に機能するはずです。
希望する日付区切り文字で正規表現の#を変更します。グローバルセパレータの場合は、#を(/ |-|。)に置き換えます。
DD-MM-YYYY形式の場合
^(?:31#(?:(?:0[13578])|(?:1[02]))#)|(?:(?:29|30)#(?:(?:0[1,3-9])|(?:1[0-2]))#)(?:(?:1[6-9]|[2-9]\d)\d{2})$|^(?:29#02#(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0[1-9])|(?:1\d)|(?:2[0-8]))#(?:(?:0[1-9])|(?:1[0-2]))#(?:(?:1[6-9]|[2-9]\d)\d{2})$
MM-DD-YYYY形式の場合
^(?:(?:(?:0?[13578]|1[02])#31)\1|(?:(?:0?[1,3-9]|1[0-2])#(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2#29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))#(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
パフォーマンスをテストします。
29-02-2000 ---> true
millis 2
29-02-2006 ---> false
millis 0
29-02-2001 ---> false
millis 0
30-02-2000 ---> false
millis 0
31-11-2000 ---> false
millis 0
29-13-2000 ---> false
millis 0
31-11-2000 ---> false
millis 0
31-07-2000 ---> true
millis 0
31-08-2000 ---> true
millis 1
31-12-2000 ---> true
millis 0
30-11-2011 ---> true
millis 0
17-07-2011 ---> true
millis 0
04-10-1987 ---> true
millis 0
01-01-1900 ---> true
millis 0
24-05-88 ---> false
millis 0
24-05-88 ---> false
millis 0
29-12-2011 ---> true
millis 0
31-12-2000 ---> true
millis 0
1-1-2010 ---> false
millis 0
1-1-99 ---> false
millis 0
1-01-99 ---> false
millis 0
01-1-99 ---> false
millis 0
さまざまな形式の場合、日付区切り記号の正規表現と順序を変更します。