IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

javaScript 날자 형식체크

Programming/JavaScript 2020. 12. 31. 12:03
반응형

- 입력형식 : YYYYMMDD , YYYY/MM/DD , YYYY-MM-DD
- 결과 : 0(날자형식), 1(날자형식 아님)

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <title>JS Data Chaek</title>
 </head>
 <body>
  <script type="text/javascript">
  <!--
    var yyyymmdd = '20201231';
    alert('yyyymmdd : '+yyyymmdd +  '   >  isDate = ' +isDate(yyyymmdd)       );

    yyyymmdd = '2020-12-31';
    alert('yyyymmdd : '+yyyymmdd +  '   >  isDate = ' +isDate(yyyymmdd)       );

    yyyymmdd = '2020/12/31'; 
    alert('yyyymmdd : '+yyyymmdd +  '   >  isDate = ' +isDate(yyyymmdd)       );
     
    yyyymmdd = '00201231';
    alert('yyyymmdd : '+yyyymmdd +  '   >  isDate = ' +isDate(yyyymmdd)       );

    yyyymmdd = '20201331';
    alert('yyyymmdd : '+yyyymmdd +  '   >  isDate = ' +isDate(yyyymmdd)       );

    yyyymmdd = '20201232';
    alert('yyyymmdd : '+yyyymmdd +  '   >  isDate = ' +isDate(yyyymmdd)       );

     /*
      * 날자 입력 제한 형식  " YYYYMMDD, YYYY-MM-DD, YYYY/MM/DD 
      *  return  > 0: 정상, 1: 날자형식 아님.
      */
    function isDate(yyyymmdd) {

        var yy, mm, dd, splitStr = '-';

        // 8자리로 입력된 경우, 
        if (yyyymmdd.length == 8) 
        {
            if (!yyyymmdd.match(/[0-9]{8}/g)) 
            {
                alert('is not date');
                return 1;    // 입력값 오류
            }
            yy = yyyymmdd.substring(0, 4);
            mm = yyyymmdd.substring(4, 6);
            dd = yyyymmdd.substring(6, 8);
        } 
        // 10자리 입력
        else if (yyyymmdd.length == 10) 
        {
            if (!yyyymmdd.match(/[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}/g))
            {
                alert('is not date');
                return 1;    // 입력값 오류
            }

            if(yyyymmdd.indexOf('/')>0)  splitStr = '/';

            yy = yyyymmdd.split(splitStr)[0];
            mm = yyyymmdd.split(splitStr)[1];
            dd = yyyymmdd.split(splitStr)[2];
        }
        // 그외 .  입력형식 에러   YYYYMMDD, YYYY-MM-DD, YYYY/MM/DD  형태만가능 
        else
        {
            return 1;
        }
        
        // 1000년 이하인 경우 에러처리  
        if(eval(yy)<1000)
        {
            alert('is not year');
            return 1;    // 입력값 오류
        }

        // 해당월이 1보다 작거나 12보다 큰 겨우.
        if (eval(mm) < 1 || eval(mm) > 12)
        {
            alert('is not month');
            return 1;
        }

        // 해당월의 마지막 날자 
        var limit_day;
        switch (eval(mm))
        {
            case 2:
                if ((yy - 2008) % 4 == 0) limit_day = 29;
                else limit_day = 28;
                break;
            case 4:        case 6:        case 9:        case 11:
                limit_day = 30;
                break;
            default:  // 1 ,3, 5, 7, 8, 10, 12
                limit_day = 31;
                break;
        }
        // 해당월의 날자 초과  하거나, 해당일의 수가 1보다 작은 경우
        if (eval(dd) > limit_day || eval(dd) < 1)
        {
            alert('is not day');
            return 1;
        }
        return 0;
    } 
  //-->
  </script>
 </body>
</html>
반응형
Posted by Edward. K
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • 이미지 편집
  • tomcat
  • 이클립스
  • toad
  • 가상화폐무료
  • iBATIS
  • Graphic
  • 중독성게임
  • sqlgate
  • Eclipse
  • EkNote
  • 미네르바
  • 플래시 게임
  • ERwin
  • rocketdock
  • EditPlus
  • 사업 이야기
  • netbeans
  • 전자정부프레임워크
  • Flash Player
  • 개한민국
  • android
  • 컴퓨터 관리
  • egov
  • Jboss
  • eclipse plugin
  • 캡쳐툴
  • 색상코드표
  • STS
  • flex

글 보관함

«   2026/01   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바