본문 바로가기
개발언어/.NET

C# 유효한 생년월일 확인

by 공장장코난 2019. 1. 11.

개요

회원으로부터 입력받은 생년월일의 유효성 체크를 위해 정규식을 작성해 보았다.

public static bool IsValidBirthday(string inValue)
{
    bool isValidate = false;
    isValidate = Regex.IsMatch(inValue, "[1-2]{1}[0-9]{3}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}");
    return isValidate;

}

하지만, 단점이 '19800536' 입력할 경우 그대로 통과해 버린다. 문제는 입력받은 생년월일을 이후 DateTime으로 변환시 Exception 문제가 발생했다.

그래서 입력 받은 생년월일 'DateTime.TryParseExact()' 통해 한번더 확인했다.

using System.Globalization;
using System.Text.RegularExpressions;
...

public static bool IsBirthdayValidCheck(string inValue)
{
    bool isValid = false;
    isValid = IsValidBirthday(inValue);
    if (!isValid)
    {
        return false;
    }
    return DateTime.TryParseExact(inValid, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyle.None);
}

...

string strBirthday = string.Empty;

strBirthday = "19801125";

if (!IsBirthdayValidCheck(strBirthday))
{
    //잘못된 생년월일
    return;
}

//정상 생년월일

'개발언어 > .NET' 카테고리의 다른 글

data to byte로 변환하기  (0) 2019.01.17
C# delegate 사용법 - 사례2  (0) 2019.01.15
WPF TextBox 기본 IME 모드를 한글로 입력 받기  (0) 2019.01.10
C# Process 검색  (0) 2019.01.08
C# delegate 사용법 - 사례1  (0) 2019.01.05