Programing/javascript

생년월일 유효성 검사 함수

2025. 4. 22. 08:24
반응형

2025.04.22 - [Programing/javascript] - 날짜 형식 유효성 검사 함수 글의 응용 코드입니다.

 

회원가입, 본인 확인, 나이 계산 등의 기능을 구현할 때 생년월일 입력값이 실제 존재하는 날짜인지, 미래의 날짜는 아닌지 검증하는 절차는 매우 중요합니다. 이 글에서는 YYYYMMDD 형식의 생년월일 문자열이 올바른지 확인하는 isValidBirthDate 함수의 동작 방식을 설명합니다.


✨ 함수 코드 원문

function isValidBirthDate(input) {
    const BIRTHDATE_PATTERN = /^\d{8}$/;
    if (!BIRTHDATE_PATTERN.test(input)) return false;

    const [year, month, day] = [
        parseInt(input.slice(0, 4), 10),
        parseInt(input.slice(4, 6), 10),
        parseInt(input.slice(6, 8), 10)
    ];

    const date = new Date(year, month - 1, day);

    const isSameDate = 
        date.getFullYear() === year &&
        date.getMonth() === month - 1 &&
        date.getDate() === day;

    const isNotFuture = date <= new Date();

    return isSameDate && isNotFuture;
}

✨ 검증 단계 요약

1. 형식 검사 (정규표현식)

  • ^\d{8}$: 숫자 8자리만 허용되는 형식 (YYYYMMDD)
  • 예: 19900101, 20231231 ✅ / 1990-01-01, 900101 ❌

2. 날짜 존재 여부 확인

  • 문자열에서 연/월/일을 분리해 Date 객체를 생성
  • new Date()는 유효하지 않은 날짜를 자동으로 보정하므로, 원래 입력한 값과 객체의 구성 값이 일치하는지 역검증

3. 미래 날짜 여부 확인

  • date <= new Date() 조건으로 미래의 날짜를 차단

✨ 사용 예시

isValidBirthDate('19900101'); // true → 유효한 과거 날짜
isValidBirthDate('20240229'); // true → 윤년 2월 29일
isValidBirthDate('20230229'); // false → 2023년은 윤년 아님
isValidBirthDate('20500101'); // false → 미래 날짜
isValidBirthDate('19901301'); // false → 13월은 없음
isValidBirthDate('19900230'); // false → 2월은 30일 없음
isValidBirthDate('1990011a'); // false → 숫자가 아님
isValidBirthDate('1990-01-01'); // false → 하이픈 포함

✨ 결론

isValidBirthDate 함수는 형식, 날짜 존재 여부, 미래 날짜 차단을 모두 포함한 생년월일 유효성 검증을 수행합니다. 실제 서비스에서 생년월일 입력값을 안전하게 처리하기 위한 기본 도구로, 프론트엔드와 백엔드 모두에 적용하기 적합합니다.

반응형

'Programing > javascript' 카테고리의 다른 글

javascript 비밀번호 유효성 검사  (0) 2025.04.22
javascript 이메일 유효성 검사  (0) 2025.04.22
국가별 여권번호 유효성 검사  (0) 2025.04.22
윤년 기준으로 날짜 선택 옵션을 자동 변경하는 함수  (0) 2025.04.22
날짜 범위 형식 유효성 검사 함수  (1) 2025.04.22
날짜 형식 유효성 검사 함수  (0) 2025.04.22
URL 형식 유효성 검사 함수  (0) 2025.04.22
휴대폰 번호 유효성 검사 JavaScript  (1) 2025.04.21
'Programing/javascript' 카테고리의 다른 글
  • 국가별 여권번호 유효성 검사
  • 윤년 기준으로 날짜 선택 옵션을 자동 변경하는 함수
  • 날짜 범위 형식 유효성 검사 함수
  • 날짜 형식 유효성 검사 함수
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    IT 관련
    iT's MY LiFE
    기초
    JavaScript
    php
    자바
    사고 싶은 책
    블로그
    js패턴
    읽고 싶은 책
    SQL
    자바스크립트유틸
    디자인패턴
    위시리스트
    IT블로그
    It
    Java
    자바스크립트
    jsp
    IT·컴퓨터
Dongkkase
생년월일 유효성 검사 함수
상단으로

티스토리툴바