All pastes #994439 Raw Edit

Peiks js-problem

public text v1 · immutable
#994439 ·published 2008-04-23 12:19 UTC
rendered paste body
function isDate(value)
{
   // ddmmåååå
   var datePattern = /^\d{2}\d{2}\d{4}$/g;
   // dd.mm.åååå
   var datePatternDots = /^\d{2}\.\d{2}\.\d{4}$/g;
   var dateElements = new Array(3);

   if (value != null && value != "")
   {
      if (datePattern.test(value))
      {
         dateElements[0] = value.substring(0,2);
         dateElements[1] = value.substring(2,4);
         dateElements[2] = value.substring(4);
//alert("Date OK: '" + value + "'");
alert("D: '" + dateElements[0] + "'" + "  M: '" + dateElements[1] + "'" + "  Y: '" + dateElements[2] + "'");
      }
      else if (datePatternDots.test(value))
      {
         dateElementsTemp = value.split(".");
alert("D: '" + dateElements[0] + "'" + "  M: '" + dateElements[1] + "'" + "  Y: '" + dateElements[2] + "'");
      }
      else
      {
alert("FEL: D: '" + dateElements[0] + "'" + "  M: '" + dateElements[1] + "'" + "  Y: '" + dateElements[2] + "'");
         return false;
      }
      var dd = parseInt(dateElements[0]);
      var mm = parseInt(dateElements[1]);
      var yyyy = parseInt(dateElements[2]);
      
      var days = (dd < 1 || dd > 31)? false : true;
      // specialfallet februari
      if (mm == 2 && dd > 29)
         days = false;
      var months = (mm < 1 || mm > 12)? false : true;
      var years = (yyyy < 2000 || yyyy > 3000)? false : true;
      
      if (days && months && years)
         return true;
      else
         return false;
   }
   return false;
}