~/devtools / regex / date
tool::regex-guide

regex date

/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

ISO 날짜 형식 검증 (YYYY-MM-DD)

ad · 728×90
정규식 패턴
/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/
플래그:없음
패턴 분석
^\d{4}4-digit year (e.g. 2024)
-Literal hyphen separator
(0[1-9]|1[0-2])Month 01–12
-Literal hyphen separator
(0[1-9]|[12]\d|3[01])Day 01–31
$End of string
매칭 예시
2024-01-15
2000-12-31
1999-06-01
비매칭 예시
2024-13-01
2024-00-15
24-01-15
2024/01/15

ISO 8601 표준의 YYYY-MM-DD 날짜 형식을 검증하는 패턴입니다. 월은 01~12, 일은 01~31 범위만 허용합니다. 단, 2월 30일 같은 논리적으로 존재하지 않는 날짜는 별도의 로직으로 처리해야 합니다.

언어별 사용법

JavaScriptRegExp 객체 또는 리터럴 사용
const pattern = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;

// Test a string
console.log(pattern.test("2024-01-15")); // true
console.log(pattern.test("2024-13-01")); // false

// Match and extract
const result = "2024-01-15".match(pattern);
Pythonre 모듈 사용
import re

pattern = r"^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$"

# Test a string
if re.fullmatch(pattern, "2024-01-15"):
    print("Valid")

# Find all matches in text
matches = re.findall(pattern, text)
Javajava.util.regex 패키지 사용
import java.util.regex.*;

String pattern = "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$";
Pattern p = Pattern.compile(pattern);

Matcher m = p.matcher("2024-01-15");
boolean isValid = m.matches(); // true

// Find occurrences
Matcher finder = p.matcher(inputText);
while (finder.find()) {
    System.out.println(finder.group());
}

주요 사용 사례

  • 날짜 입력 필드 형식 검증
  • API 파라미터 날짜 형식 확인
  • 데이터베이스 입력 전 날짜 전처리
  • CSV 파일 날짜 컬럼 정제
  • 로그 파일 날짜 파싱

관련 패턴

email/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-/iphone/^\+?[\d\s\-\(\)]{7,15}$/url/^https?:\/\/[^\s\/$.?#].[^\s]*$/iip-address/^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\./
ad · 300×250
Regex 테스터로 돌아가기
// related tools
Cron 표현식 생성기
Cron 표현식을 시각적으로 만들고 파싱합니다. 사람이 읽기 쉬운 설명과 다음 실행 시간을 미리 확인할 수 있습니다.
jwt
JWT 디코더
JWT 토큰을 디코딩하고 분석합니다. 헤더, 페이로드, 서명을 확인할 수 있습니다.
색상 변환기
HEX, RGB, HSL 등 다양한 형식으로 색상을 변환합니다.
ts
타임스탬프 변환기
Unix 타임스탬프와 날짜/시간을 양방향으로 변환합니다. ms/s, UTC/로컬, 상대 시간을 지원합니다.