14. marts 2002 - 11:31Der 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.
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.
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....
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.
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); }
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
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
Synes godt om
Ny brugerNybegynder
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.