mk_5884 Programming

自分で調べたIT関連のことなどを書いています

jsで日付の整合性チェックを行う

NULL、存在、過去チェックを行う。
でもなんかちょっと違う様な・・・Macだと正規表現の書き方違ったりする?
(↑Macだと¥じゃなくて\じゃないとダメみたい。)
直したらまた書きます。


   function changeCheck() {
       var date = document.getElementById('device_change_date').value;

       // 入力フォーマットチェック
       if(!date || !date.match(/^¥d{4}¥-¥d{2}¥-¥d{2}$/)){
           alert('yyyy-mm-dd のように入力してください')
           return false;
       }

       // 日付存在チェック
       var arrDate = date.split("-");
       dt = new Date(date);
       if ( dt.getFullYear()!=arrDate[0] || dt.getMonth()!=arrDate[1]-1
|| dt.getDate()!=arrDate[2] ) {
           alert('その日付は存在しません');
           return false;
       }

     //今日の日付を指定
     var now = new Date();
     //今日から「ymdのみ」を取得。「new Date();」だと「ymd 9:00」となってしまい、正確な比較が出来なくなる。
     var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
    
     if(today > dt){
         alert('入力した日付は過去です');
         return false;
     }
       document.deviceForm.action="/admin/Confirm.html";
       return true;
   }