역사상 가장 상세 한 js 날짜 정규 표현 식 공유
날짜 의 유효 범위 에 대해 서로 다른 응용 장면 이 다 를 수 있 습 니 다.MSDN 에서 정의 한 DateTime 대상 의 유효 범 위 는 0001-01-01 00:00:00 부터 9999-12-31 23:59:59 입 니 다.
UNIX 타임 스탬프 의 0 은 ISO 8601 규범 에 따라 1970-01-01T 00:00:00 Z 이다.
먼저 연도 와 무관 한 앞의 세 가지 규칙 을 고려 하면 연 도 는 통일 적 으로 글 을 쓸 수 있다.
(?!0000)[0-9]{4}
다음은 달 과 일의 정칙 만 을 고려한다.
1.평년 을 포함 한 모든 연도 의 월 은 1~28 일 을 포함한다
(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])
2.평년 을 포함 한 모든 연 도 는 2 월 을 제외 하고 29 일과 30 일 을 포함한다.
(0[13-9]|1[0-2])-(29|30)
3.평년 을 포함 한 모든 연도 1,3,5,7,8,10,12 월 은 31 일 을 포함한다.
(0[13578]|1[02])-31)
합치 면 윤년 의 2 월 29 일 을 제외 한 모든 날짜 입 니 다.
(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)
다음은 윤년 의 실현 을 고려 하 자.
1:4 년 1 윤([0-9]{2}(0[48]|[2468][048]|[13579][26])
2:백년 불 윤,400 년 재 윤(0[48]|[2468][048]|[13579][26])00
3:합치 면 모든 윤년 의 2 월 29 일([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26]]00)-02-29)
네 가지 규칙 이 모두 실현 되 었 고 서로 영향 을 주지 않 았 습 니 다.합치 면 DateTime 범위 에 부합 되 는 모든 날짜 의 정규 입 니 다.
^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$
이 정규 표현 식 은 검증 에 만 사용 되 기 때문에 포획 그룹 은 의미 가 없고 자원 만 차지 하여 일치 효율 에 영향 을 미 치기 때문에 비 포획 그룹 을 사용 하여 최적화 할 수 있다.
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$분류:JavaScript
js 날짜 정규 표현 식 은 월 일 검증 을 지원 합 니 다.이 js 날짜 정규 표현 식 은 월 일 검증 을 지원 합 니 다.우 리 는 날짜 검증 식 과 관련 된 함수 인 스 턴 스 를 일일이 예 를 들 어 설명 할 것 입 니 다.
function isdate(str){ var result=str.match(/^(d{4})(-|/)(d{1,2})2(d{1,2})$/); if(result==null) return false; var d=new Date(result[1], result[3]-1, result[4]); return (d.getFullYear()==result[1] && d.getMonth()+1==result[3] && d.getDate()==result[4]); }
YYY-MM-DD||YYY/MM/DD 의 날짜 형식 인지 확인 합 니 다.
월 과 일의 정칙 만 을 고려 하 다
1.평년 을 포함 한 모든 연도 의 월 은 1~28 일 을 포함한다
(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])2.평년 을 포함 한 모든 연 도 는 2 월 을 제외 하고 29 일과 30 일 을 포함한다.
(0[13-9]|1[0-2])-(29|30)3.평년 을 포함 한 모든 연도 1,3,5,7,8,10,12 월 은 31 일 을 포함한다.
(0[13578]|1[02])-31)을 합치 면 윤년 의 2 월 29 일 을 제외 한 모든 날짜 이다.
(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)function isdatetime(str) { var result=str.match(/^(d{4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/); if(result==null) return false; var d= new Date(result[1], result[3]-1, result[4], result[5], result[6], result[7]); return (d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]); }
//입력 이 유효한 긴 날짜 형식 인지 판단-"YYYY-MM-DD HH:MM:SS"|"YYYY/MM/DD HH:MM:SS"
yyy-mm-dd hh:mm:ss 의
/^(d{4})-(d{2})-(d{2}) (d{2}):(d{2}):(d{2})$/ ;
이거 yyy-mm-ddde 거 예요.
/^(d{4})-(d{2})-(d{2})$/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.