[英]Regular expression in C#.net
我需要一個函數來驗證輸入的日期。 輸入的日期格式是否正確。 我瀏覽了網絡並得到了一個正則表達式。 它工作正常,除非當您輸入 12/12/YYYY(在任何年份)時,它會顯示錯誤,指出它不是有效日期。
bool IsDate(string date)
{
Match dobMatch = Regex.Match(date, @"^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[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))))$");
if (!dobMatch.Success)
{return true;}
else
{return false;}
}
一世
嘗試DateTime.TryParse()
。
這將為您解析日期。 如果要用於解析日期的CultureInfo
則此方法允許您傳遞CultureInfo
。
或者,如果您真的想使用正則表達式,請查看http://regexlib.com/ 。 這是一個綜合的正則表達式庫,每個正則表達式都有評級。
為什么要使用正則表達式?
試試這個: 在C#中驗證一個DateTime
為什么不使用DateTime.TryParse或DateTime.TryParseExact比使用 Regex 容易得多。
用:
^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$
或轉到以下鏈接, http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5
正則表達式只驗證字符串中的字符數據,並沒有說明該字符串中數據的實際有效性。
要在 .Net 中檢查字符串是否為有效日期,請使用以下命令:
DateTime dt;
if (DateTime.TryParse(someString, out dt))
{
//Parsed as a valid date whose value is now in the variable dt
}
else
{
//Not a valid date
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.