Avatar billede hjep Nybegynder
14. marts 2002 - 11:31 Der er 11 kommentarer og
1 løsning

Validering af cpr.nr.

Jeg søger validering af cpr.nr. Iøjeblikket bruger jeg en hvor at brugeren skal indtaste 10 ciffer. Men nogen taster selvfølgelig et forkert ciffer og det sluger den jo råt. Er der nogen som har en validering på hvor man tjekker at cpr.nr. eksistere.
Avatar billede nikolajdu Nybegynder
14. marts 2002 - 11:38 #1
Hvordan vil du tjekke om mit CPR nr er rigtigt??? Du kan tjekke for om det overholder dattoformatet, men hvordan ved du om det bliver korrekt af den grund??

Eller rettere hvordan forestiller du dig det??? I sidste ende så er CPRnr ikke noget nogen har krav på at vide - Hvis vi lige ser bort fra Told og Skat m.fl.

/Nikolaj
Avatar billede speedy Nybegynder
14. marts 2002 - 11:41 #2
nikolajdu>>Jo, der er faktisk en checksum i et CPR-nummer.

Mere info findes på:
www.cpr.dk

/SpEeDy
Avatar billede speedy Nybegynder
14. marts 2002 - 11:43 #3
Avatar billede nikolajdu Nybegynder
14. marts 2002 - 11:46 #4
Jo men hvordan vil der tjekkes om det rent faktisk også er rigtigt - Jeg an jo sagtens digte ud fra beregningen af kontrolcifferet - og i hvilken forbindelse skal manbruge et cprnr system. Registerloven er ganske skrap her....
Avatar billede hjep Nybegynder
14. marts 2002 - 11:46 #5
Ja jeg ved godt at jeg ikke kan tjekke om det er 100% rigtig. Men det var den med checksummen jeg mente. Men det er da ikke større projekt at kaste sig ud i.
Avatar billede speedy Nybegynder
14. marts 2002 - 11:47 #6
Det vil sige at man kan ikke chekke om nummeret eksisterer, men man kan chekke om nummeret er gyldigt.

/SpEeDy
Avatar billede hjep Nybegynder
14. marts 2002 - 11:48 #7
undskyld jeg mente det er et større projekt, men måske nogen har det liggende?
Avatar billede tknudsen Nybegynder
14. marts 2002 - 12:11 #8
prøv med følgende:

<script>

function isLeapYear(year)
{
    var result = false;
    var div4,div100,div400;

    div4 = year % 4;
    div100 = year % 100;
    div400 = year % 400;

    result = ((div4==0) & (div100!=0)) || ((div100==0) && (div400==0))
    return result;
}


function validateDate(d)
{
    if(d.length!=6)
        return false;

    var daysInMonth = Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
    var day = parseInt(d.substr(0,2),10);
    var month = parseInt(d.substr(2,2),10);
    var year = parseInt(d.substr(4,2),10);

    if(year < 0)
        return false;

    if(isLeapYear(year))
        daysInMOnth[2] = 29;

    if(month < 1 || month > 12)
        return false;

    if(day < 1 || day > daysInMonth[month])
        return false;

    return true;
}

function validateCPR(cpr)
{
    // requires: cpr no - format: DDMMYYCCCC
    // CCCC: control digits

    if(cpr.length!=10)
        return false;

    var d = cpr.substr(0,6);
   
    if(!validateDate(d))
        return false;

    var w = 4*parseInt(cpr.substr(0,1),10) +3*parseInt(cpr.substr(1,1),10) +2*parseInt(cpr.substr(2,1),10) +7*parseInt(cpr.substr(3,1),10)
            +6*parseInt(cpr.substr(4,1),10) +5*parseInt(cpr.substr(5,1),10) +4*parseInt(cpr.substr(6,1),10) +3*parseInt(cpr.substr(7,1),10)
            +2*parseInt(cpr.substr(8,1),10) +parseInt(cpr.substr(9,1),10);

    if(w%11!=0)
        return false;

    return true;
}

function isValidCPR(cpr)
{
    return validateCPR(cpr);
}

alert(isValidCPR('0123456789'));


</script>
Avatar billede hjep Nybegynder
14. marts 2002 - 13:55 #9
Perfek kode. Tak for hjælpen
Avatar billede tknudsen Nybegynder
14. marts 2002 - 13:57 #10
velbekomme
Avatar billede fri-hash Nybegynder
14. marts 2002 - 18:28 #11
bemærk (som en anden allerede har nævnt) at registertilsynet er temmelig strikse mht. fuldt cprnr. .... blandt andet SKAL dette krypteres (f.eks via SSL) hvis det sendes over nettet .... Jeg læste om et revisionsfirma, der via deres website (uden SSL) lod brugere indtaste cprnr - de fik en betydelig bøde samt påbud om at stoppe indtil de havde en SSL-forbindelse på plads
Avatar billede jw Nybegynder
15. marts 2002 - 14:47 #12
Bare som en kommentar, vil jeg lige nævne at validering af CPR måske bliver fortid. Et af de mulige forslag der ligger i øjeblikket for at får adgang til flere numre pr. fødselsdag, hvilket snart snart kunne blive nødvendigt, er at fjerne valideringen.
/jw
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