allora probabilmente hai un errore nel codice restante...
se provi a copiare l'esempio seguente, la regexp accetta solo anni a 4 cifre

codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>xhtml 1.0</title>
        
        
        <script type="text/javascript">
        // <![CDATA[
        function checkdata(dt){

            var re5digit=/^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[012])\/(19|20|21)\d{2}$/;
            data = document.getElementById(dt);

            if (!re5digit.test(data.value)) {
              alert("Please enter a valid data");
              data.focus();
              return false;
           }
           else {
              alert('la regexp accetta questa data');
           }
        }
        // ]]>
        </script>
    </head>

<body>

<input type="text" value="10/08/1978" id="data" />
<input type="button" value=" check " onclick="checkdata('data');" />

</body>
</html>