簡體   English   中英

正則表達式匹配日期

[英]regular expression matching dates

需要匹配用戶提交的字符串中的日期,它應該使用這些不同的格式

jan 1 2000
january 1 2000
jan. 1 2000
1/1/2000
2000
january

您將如何編寫此正則表達式?

我不會使用RegExp:

DateTime attempt;
if (DateTime.TryParse(inputDate, out attempt)
{
  // You're good to go.
}

但這會與“一月”或“ 2000”的“日期”相抵觸。

即使這些是唯一允許的格式,使用正則表達式也很難做到這一點,因為它涉及檢查月份名稱是否有效,檢查日期是否在給定月份(4月31日等),leap年等有效。

像其他建議的那樣使用DateTime類。

您是否先看過DateTime.TryParse 除了一些特殊情況外,它可能會避免使用正則表達式。

我的事情太復雜了,無法使用正則表達式進行驗證。

更好地使用DateTime.TryParse

同樣,由於31/30/29/28天/月以及1752年9月這樣的特殊情況,使用正則表達式驗證日期確實非常困難。

這是用於獲勝還是Web應用程序? 如果是Windows,只需使用DateTime.TryParse,但如果是Web,則使用javascript。

對於javascript,請參閱這篇文章

暫無
暫無

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

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