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. 日期驗證的正則表達式
- 4. 使用正則表達式來驗證日期格式
- 5. 正則表達式日期驗證
- 6. 驗證日期與正則表達式
- 7. JavaScript正則表達式驗證日期
- 8. PHP - 正則表達式驗證日期
- 9. Rails正則表達式日期驗證
- 10. postgres日期驗證正則表達式
- 11. Php正則表達式日期驗證
- 12. 正則表達式驗證grails類似於日期的格式
- 13. 日期格式驗證的正則表達式
- 14. 正則表達式的日期格式
- 15. 日期格式的正則表達式
- 16. 使用正則表達式驗證日期格式
- 17. 正則表達式驗證日期時間格式(MM/DD/YYYY)
- 18. 如何使用正則表達式驗證日期格式
- 19. 使用正則表達式驗證日期格式
- 20. 正則表達式日期格式
- 21. 正則表達式日期格式?
- 22. jquery正則表達式日期格式
- 23. 正則表達式 - 日期格式
- 24. 正則表達式來驗證不同的日期
- 25. 更好的正則表達式來驗證日期時間
- 26. 驗證未來日期的正則表達式
- 27. 正則表達式來驗證任何類型的日期格式的
- 28. 日期格式正則表達式匹配日期分隔符
- 29. 正則表達式來表達CCYYMMDD格式日期
- 30. 正則表達式日期