5
A
回答
15
正則表達式是不適合這個任務。例如,編寫一個與有效日期「20080229」相匹配而不是無效日期「20100229」的正則表達式很難。
取而代之,您應該使用DateTime.TryParseExact
,格式字符串爲"yyyyMMdd"
。以下是一個示例:
string s = "20100229";
DateTime result;
if (!DateTime.TryParseExact(
s,
"yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal,
out result))
{
Console.WriteLine("Invalid date entered.");
};
2
考慮使用DateTime.TryParseExact來驗證日期。 您可以使用該方法同時驗證並讀取DateTime值。
例如:
DateTime dateValue;
if (DateTime.TryParseExact(dateString, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
{
//Parsed Successfully
}
7
好吧,這是最漂亮的正則表達式我曾經構建過。這佔了1582年以來的所有閏年,引入了飛躍。它每四個世紀也處理非飛躍。例如,1600是飛躍,但1700不是,但它可以被四整除。我使用破折號
var yyyyDashMmDashDd = new RegExp("^(?:(?:(?:(?:(?:[13579][26]|[2468][048])00)|(?:[0-9]{2}(?:(?:[13579][26])|(?:[2468][048]|0[48]))))-(?:(?:(?:09|04|06|11)-(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02-(?:0[1-9]|1[0-9]|2[0-9]))))|(?:[0-9]{4}-(?:(?:(?:09|04|06|11)-(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02-(?:[01][0-9]|2[0-8])))))$");
我愛這適用於幾乎所有的語言,只要他們支持正則表達式1582和9999
var yyyymmdd = new RegExp("^(?:(?:(?:(?:(?:[13579][26]|[2468][048])00)|(?:[0-9]{2}(?:(?:[13579][26])|(?:[2468][048]|0[48]))))(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:0[1-9]|1[0-9]|2[0-9]))))|(?:[0-9]{4}(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:[01][0-9]|2[0-8])))))$");
另一個版本之間測試了所有日子。儘管使用語言特定的日期解析器更合理,但我認爲這顯示了正則表達式的強大和優雅。
這是一個image與Regexper斜槓模式,如果你想看到它。
相關問題
- 1. 正則表達式驗證日期 - C#
- 2. 日期的正則表達式驗證
- 3. PHP - 正則表達式驗證日期
- 4. 正則表達式日期驗證
- 5. Php正則表達式日期驗證
- 6. Rails正則表達式日期驗證
- 7. JavaScript正則表達式驗證日期
- 8. postgres日期驗證正則表達式
- 9. 使用正則表達式驗證日期格式
- 10. 正則表達式驗證日期時間格式(MM/DD/YYYY)
- 11. jquery正則表達式日期格式
- 12. 日期格式正則表達式匹配日期分隔符
- 13. 正則表達式來驗證任何類型的日期格式的
- 14. 正則表達式來表達CCYYMMDD格式日期
- 15. 正則表達式日期
- 16. p:日曆上的正則表達式日期驗證
- 17. 使用正則表達式來驗證日期
- 18. 正則表達式驗證日期爲年月日
- 19. 正則表達式來驗證日期格式MM/DD/YY包括閏年
- 20. C# - 正則表達式驗證日期和時間
- 21. SQL Server日期格式yyyymmdd
- 22. 含空格的日期和日期的正則表達式
- 23. javascript中日期驗證的正則表達式
- 24. 正則表達式來匹配日期從日期
- 25. 插入正則表達式來格式化日期(Perl)
- 26. 以dd/mm/yyyy格式爲javascript驗證的日期的正則表達式
- 27. 在C++中驗證日期格式
- 28. 用於驗證日期範圍的Java正則表達式
- 29. 用於驗證日期的正則表達式
- 30. 日期驗證的正則表達式 - 說明