簡體   English   中英

C#.net 中的正則表達式

[英]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.TryParseDateTime.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.

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