Avatar billede quarkb Nybegynder
17. april 2013 - 16:08 Der er 8 kommentarer og
1 løsning

Dato tjek

Jeg har et sjovt problem med nedenstående script.
indtastet datoen 07-04-13 er det ok, men indtastet 08-04-13 og 09-04-13 skriver den at det er ugyldig datoformat, alle andre datoer er i orden.

<script type='text/javascript'>
function checkDato( datoStreng ) {
    var format = /^\d\d-\d\d-\d\d$/;
    if (format.test(datoStreng)) {         
        var dag = parseInt(datoStreng.substring(0,2), 8);
        var maaned = parseInt(datoStreng.substring(3,5), 8);
        var aar = parseInt(datoStreng.substring(6,8), 8);
        var dato = new Date(aar, maaned-1, dag);
        if (dato.getDate() == dag && dato.getMonth() == maaned-1) {
            return true;
        }
    }
    return false;
};

function valider (formObjekt) {
    if (!checkDato(formObjekt.Dato.value)) {
        alert("den indtastede dato duer ikke.\nBenyt formatet DD-MM-ÅÅ");
        formObjekt.Dato.focus();
        return false;
    }
    return true;
};
</script>



<form name="Retlinje" action="?target=retlinje&ID=1" method="post" onsubmit="return valider(this);">
    <p><input type="text" name="Dato" size="20"><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>
Avatar billede olebole Juniormester
17. april 2013 - 17:07 #1
<ole>

Prøv lige følgende kode:

var str = "05";
var tal = parseInt(str);
alert(tal);

Som du ser, returneres '5' og ikke '05'. Du laver jo strengen om til et tal, og et tal har ikke et foranstillet '0'. Til gengæld forventer resten af scriptet en streng  *o)

/mvh
</bole>
Avatar billede olebole Juniormester
17. april 2013 - 17:28 #2
- og derudover bør du nok forklare, hvad det i virkeligheden er, du prøver at teste for. Jeg er ikke sikker på, ønskerne hænger sammen med det, du foretager dig  =)
Avatar billede quarkb Nybegynder
17. april 2013 - 18:24 #3
OK, jeg vil test på om dato formatet er dd-mm-åå, f. eks. 08-04-13.
Avatar billede quarkb Nybegynder
17. april 2013 - 18:25 #4
Jeg er ikke JavaScript haj, så det er et jeg har fundet på nettet, og til rettet til dd-mm-åå fra dd-mm-åååå
Avatar billede olebole Juniormester
17. april 2013 - 18:43 #5
Ja, og så har du vist også ændret datoformatet  *o)

Prøv denne kode i stedet:

<script type='text/javascript'>
function checkDato( datoStreng ) {
    var format = /^(\d\d)-(\d\d)-(\d\d)$/;
    if (format.test(datoStreng)) {
        var dag = parseInt(RegExp.$1),
        maaned = parseInt(RegExp.$2),
        aar = parseInt(RegExp.$3),
        dato = new Date(aar, maaned, dag);
        if (dato.getDate() == dag && dato.getMonth() == maaned) {
            return true;
        }
    }
    return false;
};

function valider (formObjekt) {
    if (!checkDato(formObjekt.Dato.value)) {
        alert("den indtastede dato duer ikke.\nBenyt formatet DD-MM-ÅÅ");
        formObjekt.Dato.focus();
        return false;
    }
    return true;
};
</script>
Avatar billede quarkb Nybegynder
17. april 2013 - 18:50 #6
Takker så mange gange, det var jo lige det der skulle til.
Avatar billede olebole Juniormester
17. april 2013 - 19:05 #7
Selvtak. Jeg samler ikke point, så du lægger bare selv et svar og accepterer det, så tråden lukkes  =)
Avatar billede quarkb Nybegynder
17. april 2013 - 19:10 #8
OK, så gør jeg det, igen mange tak for din hurtige hjælp.
Avatar billede olebole Juniormester
17. april 2013 - 19:16 #9
You're welcome  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB
Seneste spørgsmål Seneste aktivitet
42 min siden Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows