본문 바로가기
데스크탑/.NET

[C#] 날짜형식 검사하기

by 브래드.권 2013. 4. 30.

 

 

 

Version 1.0

문서 이력

2013-04-05 최초 작성 Ver 1.0

 

 

 

날짜 문자열의 형식이 원하는 형식인지 유효성을 검사하는 함수입니다.

Regex 클래스로 패턴검사를 이용하여 형식을 검사합니다.

 

 

using System;

using System.Text.RegularExpressions;

 

namespace KGDotNetLib

{

    public class Common

    {

        /*---------------------------------------------------------------------

         * 작성자 : NineBear

         * 함수명 : isYYYYMMDD

         * 입력값 : date : 검사할 날짜 문자열

         * 출력값 : 검사 성공 여부

         * 설명   : 날짜 문자열이 YYYYMMDD 형식인지 검사한다.

        ----------------------------------------------------------------------*/

        public static bool isYYYYMMDD(string date)

        {

            return Regex.IsMatch(date, @"^(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[0-1])$");

        }

 

 

위 예제 함수는 YYYYMMDD 형식인지 검사를 하지만 만약, YYYY-MM-DD 형식인지 검사하고 싶다면 패턴에 “-“ 을 추가해 주면 됩니다.

 

 

Regex.IsMatch(date, @"^(19|20)\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[0-1])$");

 

 

아래 패턴 정규식 구문에 대한 설명을 보고 원하는 패턴으로 검사하면 됩니다.

 

 구 문

 설 명

^

줄의 시작 - 줄의 시작 위치에 지정된 텍스트가 나올 경우입니다

( )

그룹 식 - 하위 식의 시작과 끝을 표시합니다

|

또는 - 두 항목 사이의 선택을 나타냅니다

{ }

태그가 지정된 식 - 괄호 한에 포함된 식과 일치하는 텍스트에 태그를 지정합니다.  \N을 사용하면 찾기 식에서 태그가 지정된 텍스트의 다른 항목을 검색하거나 바꾸기 식에서 태크가 지정된 텍스트를 삽입할 수 있습니다.

[ ]

문자 집합 -  대괄호 안에 지정된 임의의 한 문자입니다. [a-z]과 같이 하이픈을 사용하여 문자 범위를 지정할 수 있습니다.

$

줄의 끝 - 줄의 끝 위치에 지정된 텍스트가 나올 경우입니다