PHP에서 MM/DD/YYYY 날짜 정규식 만들기
이 튜토리얼은 PHP에서 mm/dd/yyyy
날짜 형식에 대한 정규식을 만드는 방법을 보여줍니다.
PHP에서 MM/DD/YYYY
날짜 정규식 만들기
정규식을 사용하여 표현식에 적용된 규칙에 따라 사용자 입력의 유효성을 검사할 수 있습니다. 정규식을 사용하여 모든 입력의 유효성을 검사할 수 있으며 정규식을 사용하여 mm/dd/yyyy
날짜 형식의 유효성도 검사할 수 있습니다.
정규식을 만들어 변수에 저장할 수 있습니다. preg_match()
함수를 사용하여 정규식으로 임의의 날짜 형식 입력을 테스트합니다.
날짜 형식 mm/dd/yyyy
에 대한 정규식 패턴은 아래와 같습니다. 우리는 그것에 대해 자세히 논의 할 것입니다.
~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~
정규식 패턴 주위에는 항상 올바른 구분 기호가 있어야 합니다. 여기서 ~
기호는 패턴을 둘러싼 구분 기호입니다.
다음으로 mm/dd/yyyy
형식으로 월 형식을 작성해야 합니다.
월은 형식에서 01-12
로 표시됩니다. 따라서 월의 첫 번째 숫자는 0
또는 1
이 될 수 있으므로 01-09
부터 시작하는 월에 대해 0[1-9]
를 씁니다. 괄호 안의 1-9
는 0
뒤에 쓰여진 숫자를 나타냅니다.
마찬가지로, 1
로 시작하는 월에 대해 10
, 11
및 12
만 쓸 수 있습니다. 따라서 1
의 대괄호 안에 012
를 1[012]
로 작성했습니다.
|
를 사용합니다. 논리적 OR
을 달성하기 위한 기호. 따라서 규칙을 (0[1-9]|1[012])
로 구분하는 데 사용합니다.
마지막으로 패턴을 괄호로 묶어 섹션의 끝을 나타냅니다.
다음으로 mm/dd/yyyy
형식으로 구분 기호에 대한 규칙을 설정해야 합니다. 위의 패턴은 -
, /
및 .
기호의 구분 기호를 허용합니다.
이제 우리는 며칠 동안의 패턴을 씁니다. 요일은 1-30
이므로 01-09
는 0[1-9]
로, 10-29
는 12[0-9]
로, 그리고 일 30-31
은 3[01]
으로 쓸 수 있습니다.
mm/dd/yyyy
형식의 날짜 이후 구분 기호에 대해 동일한 규칙을 사용합니다.
연도의 처음 두 자리 숫자로 19|20
을 썼습니다. 이는 연도가 19
와 20
에서만 시작할 수 있음을 의미합니다. 19|20
다음에 \d\d
패턴을 사용하여 19
또는 20
뒤에 오는 두 자리를 나타냅니다.
이것이 위의 정규식이 작동하는 방식입니다. 이제 위의 정규식을 사용하여 일부 테스트 날짜 형식을 확인할 수 있습니다.
이를 위해 $reg
변수를 만들고 위에서 작성한 정규식을 저장합니다. 다음으로 $dates
배열을 만들고 이러한 임의의 날짜 형식을 저장합니다.
['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865']
그런 다음 foreach
루프를 사용하여 $dates
변수를 $date
로 루프합니다. preg_match()
함수를 사용하여 $date
변수를 $reg
변수와 비교합니다.
이렇게 하면 테스트 입력이 mm/dd/yyyy
형식의 정규식 패턴을 준수하는지 확인할 수 있습니다.
예제 코드:
$reg = '~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~';
$dates =['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865'] ;
foreach($dates as $date){
if(!preg_match($reg, $date)) {
echo 'the date format '.$date.' is incorrect'."<br>";
} else{
echo 'the date format '.$date.' is correct'."<br>";
}
}
출력:
the date format 03/22/2021 is correct
the date format 22/22/2021 is incorrect
the date format 03\22\2021 is incorrect
the date format 03-22-2021 is correct
the date format 03/22/1865 is incorrect
여기에서 첫 번째 형식은 모든 규칙을 따릅니다. 월은 22
가 될 수 없으므로 두 번째 형식은 올바르지 않습니다.
세 번째는 \
구분 기호를 지정하지 않았기 때문에 올바르지 않습니다. -
구분 기호를 지정했으므로 네 번째 날짜가 정확합니다. 연도는 마지막의 1800년대
이므로 올바르지 않습니다.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn관련 문장 - PHP Date
- PHP 에서 날짜에 날짜를 추가하는 방법
- PHP를 사용하여 두 날짜의 차이를 계산하는 방법
- PHP에서 DateTime을 문자열로 변환하는 방법
- PHP에서 문자열을 날짜 및 날짜-시간으로 변환하는 방법
- PHP에서 한 날짜 형식을 다른 날짜 형식으로 변환하는 방법
- PHP에서 현재 날짜와 시간을 얻는 방법