簡體   English   中英

如何在JavaScript中使用“ MMM DD,YYYY h:mm:ss A”格式驗證日期?

[英]How to validate date with format “MMM DD, YYYY h:mm:ss A” in JavaScript?

我想使用格式MMM DD,YYYY h:mm:ss A驗證輸入的日期格式。我在下面嘗試過,但是沒有用:

var r = /^(((0[13578]|1[02])[\/\.-](0[1-9]|[12]\d|3[01])[\/\.-]((19|[2-9]\d)\d{2})\s(0[0-9]|1[0-2]):(0[0-9]|[1-59]\d):(0[0-9]|[1-59]\d)\s(AM|am|PM|pm))|((0[13456789]|1[012])[\/\.-](0[1-9]|[12]\d|30)[\/\.-]((19|[2-9]\d)\d{2})\s(0[0-9]|1[0-2]):(0[0-9]|[1-59]\d):(0[0-9]|[1-59]\d)\s(AM|am|PM|pm))|((02)[\/\.-](0[1-9]|1\d|2[0-8])[\/\.-]((19|[2-9]\d)\d{2})\s(0[0-9]|1[0-2]):(0[0-9]|[1-59]\d):(0[0-9]|[1-59]\d)\s(AM|am|PM|pm))|((02)[\/\.-](29)[\/\.-]((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\s(0[0-9]|1[0-2]):(0[0-9]|[1-59]\d):(0[0-9]|[1-59]\d)\s(AM|am|PM|pm)))$/g;
r.test("Dec 08, 2015 3:11:00 AM");

我不是很擅長正則表達式,任何幫助將不勝感激!

謝謝!

正則表達式不是很好地處理日期。 例如,它不適合區分30或31天的月份。 您的嘗試進一步證明了它是多么不合理,您創建了一個無法讀取,無法維護的表達式,並且幾乎無法對其進行測試或修復。

而是使用專用的日期/時間組件(如果滿足您的要求,可以使用現有的組件,也可以自己開發)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM