codice:
<script type="text/javascript">
<!--

  function checkDateForm( _datestr )  /* written by Dynamic [admin@codebreakers.tk] */
  {
    var _minyear = 1970;
    var _maxyear = (new Date()).getFullYear();

    var _dateform = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;
    var _monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var _canvalidatebymonth = true;

    var _errordesc = "";
    var _errorfound = false;
    var _singlematch = null;

    if ( (_singlematch = _datestr.match(_dateform)) != null )
    {
      if ( _singlematch[3] < _minyear || _singlematch[3] > _maxyear ) {
        _errorfound = true;
        _errordesc += "  - l'anno \"" + _singlematch[3] + "\" non è valido\n";
      } else 
        if ((_singlematch[3] % 4 == 0) && (_singlematch[3] % 400 != 0))
          _monthdays[1] = 29;

      if ( _singlematch[2] < 1 || _singlematch[2] > 12 ) {
        _errorfound = true;
        _canvalidatebymonth = false;
        _errordesc += "  - il mese \"" + _singlematch[2] + "\" non è valido\n";
      }

      if (_singlematch[1] < 1 || ( (_canvalidatebymonth &&  _singlematch[1] > _monthdays[_singlematch[2]-1]) || (!_canvalidatebymonth &&  _singlematch[1] > 31)) ) {
        _errorfound = true;
        _errordesc += "  - il giorno \"" + _singlematch[1] + "\" non è valido\n";
      }

    } else {
      _errorfound = true;
      _errordesc += "  - il formato non è valido\n";
    }

    if ( _errorfound ) {
      alert ("Errore nella data \"" + _datestr + "\":\n" + _errordesc);
      return false;
    } else
      return true;
  }

//-->
</script>