현재 운영하는 사이트에서는 조회할때 기본 날짜를 입력해놓기 때문에
당연히 거기서 바꿔서 입력할 거라고 생각했는데..
scouter로 모니터링하면서 보니 강제로 지우거나 아니면 멋대로 입력해서 사용하는 경우가 종종 발견된다.
물론 database에서 에러 처리되기 때문에 큰 문제가 없다고 여겼는데,
가끔은 예상과 다르게 동작하면서 database server에 부하를 주거나 속도가 느려지는 경우가 발견되어서
결국은 일차적으로 javascript에서 먼저 체크하는 기능을 추가했다.
(사실 html이나 javascript 부분을 손대는건 싫어하다보니.ㅠ.ㅠ)
간단하게 값이 있는지 여부만 체크하려고 하다가 하는김에 정규식을 이용해서 정확한 포맷을 입력한 경우만 체크하기 위해서 이것 저것 알아보다가 제법 제일 간단한거 같아서 정리해둔다.
날짜포맷 정규식 : /^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/
javascript 에서 적용 :
예제 )
포맷이 yyyy-mm-dd 인경우
var regex = RegExp(/^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/);
regex.test("2020-09-25");
포맷이 yyyy/mm/dd 인경우
var regex = RegExp(/^\d{4}\/(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])$/);
regex.test("2020/09/25");
위의 예제는 아래 URL에서 참고함. 위와 같은 예제외에도 다른 설명도 자세히 해놨으니 도움이 많이 될듯 하다.
https://jsikim1.tistory.com/104