Aggavara

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

日付の妥当性チェック
DateChk,LastDayChk,YearChkと3つのパートに分かれます。
あまりJavaScript側でチェックする事はありませんが、どうしてもという場合はどうぞ。

/**********************************************************************************************/
//日付の妥当性チェック(YYYYMMDD形式でい引数は渡す事。)
function DateChk(in_data){

  var chkData = in_data;

  //8桁以外はエラー
  if (chkData.length != 8)
     {return false;}

  //小数点が入っていたらエラー
  if (chkData.indexOf(".") != -1)
     {return false;}

  //マイナスが入っていたらエラー
  if (chkData.indexOf("-") != -1)
     {return false;}

  //数値チェック
  if (isNaN(chkData) == true)
     {return false;}

  in_Year = eval(chkData.substring(0,4));
  in_Month = eval(chkData.substring(4,6));
  in_Day = eval(chkData.substring(6,8));

  if ((in_Month>12) || (in_Day >31))
     {return false;}

  //閏年
  if ((in_Month == 2) && YearChk(in_Year))
     {in_Month=13;}

  //末日チェック
  if (LastDayChk(in_Month,in_Day))
     {return true;}
  else
     {return false;}

}

//末日チェック
function LastDayChk(in_Month,in_Day){
  lastDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31,29);
  if (lastDay[in_Month-1] >= in_Day)
     {return true;}
   else
     {return false;}
}

//年チェック
function YearChk(in_Year){
  if ((in_Year % 4) == 0 && ((in_Year % 100) != 0 || (in_Year % 400)))
     {return true;}
  return false;
} 

/**********************************************************************************************/
posted on 2012-10-09 10:09  Aggavara  阅读(777)  评论(0编辑  收藏  举报