Avatar billede kay_d_bee Nybegynder
06. juni 2008 - 20:52 Der er 15 kommentarer

Tjek af cpr-opbygning

Kære eksperter,
jeg er total java-ignorant, og nu har jeg fået brug for et java-script, som tjekker et felt for om der står det rigtige. Det er et felt til cpr og dvs. der skal kun tillades 6 tal en bindestreg og 4 tal mere. Ingen mellemrum, bogstaver mv.
Det skal ikke tjekkes efter modulus 11 jvf. http://cpr.dk/cpr/site.aspx?p=23&t=ForsideVisartikel&Articleid=4347

På forhånd tak for hjælpen
Avatar billede thesurfer Nybegynder
06. juni 2008 - 23:05 #1
Et nemt eksempel som er nem at udbygge, uden brug af regular expression:

<script type="text/JavaScript">
function cpr(nr)
{

    if ( isNaN(nr.substr(0,6)) || nr.substr(6,1) != "-" || isNaN(nr.substr(8)) )
    {
        alert("not a number");
        return false;
    } else {
        alert("ok");
        return true;
    }
}
</script>

Funktionen kaldes sådan her: cpr("123456-7890");

Hvis det er ved submit, og du har et felt der hedder "mitcprnr", bruges onsubmit via formen sådan her:

onsubmit="return cprnr(this.mitcprnr.value)"

Du kan evt fjerne de der alert-linier..
Avatar billede erikjacobsen Ekspert
06. juni 2008 - 23:36 #2
Nemt, ja. Det er da også det pæneste man kan sige om det.
Det her siger den ok til:  cpr("-12345--123")
Avatar billede nielle Nybegynder
07. juni 2008 - 07:41 #3
Nogen speciel grund til at det ikke skulle laves med en regexp?

<script type="text/JavaScript">
function cpr(nr)
{
    if ( /^\d{6}-\d{4}$/.test(nr) )
    {
        alert("ok");
        return true;
    } else {
        alert("not a cpr number");
        return false;
    }
}
</script>

Hvordan med tjek af om dato-delen er en korrekt dato, eller om f.eks. køn er korrekt (hvis du har det andet steds fra)?

I øvrigt er jeg ikke helt enig i at man slet ikke bør tjekke for modulus-11 mere. For det første er det endnu kun nogle helt specifikke datoer (vist kun én) som er undtaget for det. For det andet så kan man stadig bruge modulus-11 tjekket som en slags indikator for at spørge brugeren: ”Er du sikker på at du har indtastet CPR nummeret korrekt?”.
Avatar billede roenving Novice
07. juni 2008 - 12:05 #4
-- og så skal man nok lave differentierede svar, så man kan alerte korrekt (f.eks. 0: Fuldt korrekt, gyldigt format, gyldig dato, klarer mod-11; 1: næsten korrekt, gyldigt format, gyldig dato, klarer _ikke_ mod-11; 2: Ikke korrekt, gyldigt format, _ugyldig_ dato, mod-11 ikke checket; 3: Ikke korrekt, _ugyldigt_ format, dato og mod-11 ikke checket !-)
Avatar billede olebole Juniormester
07. juni 2008 - 14:11 #5
<ole>

- og så er der hele diskussionen om, hvorvidt borgere overhovedet bør udlevere deres CPR-nummer på nettet ... hvilket man naturligvis _aldrig_ bør gøre, med mindre sitet er statsligt eller kommunalt! Ingen private har brug for et andet menneskes personnummer  =)

/mvh
</bole>
Avatar billede thesurfer Nybegynder
07. juni 2008 - 14:39 #6
erikjacobsen> Korrekt.

nielle> Nope, jeg kan bare ikke hitte ud af RegExp.

roenving> Det er nok en god ide.

olebole> Absolut korrekt.

kay_d_bee> Måske skulle du overveje om du overhovedet skulle have det her cprnr-check.
Avatar billede kay_d_bee Nybegynder
07. juni 2008 - 14:47 #7
Kære alle,
tak for svar, jeg prøver at se om jeg kan få det til at virke. Ellers vender jeg frygteligt tilbage.

Personligt er jeg absolut helt enig i, at man ikke ukritisk skal udlevere sit cprnr. - heller ikke på nettet - men for god ordens skyld så er det til et site under det offentlige.
Avatar billede thesurfer Nybegynder
07. juni 2008 - 14:49 #8
kay_d_bee> Hvis det er under det offentlige, burde du vel kunne kontakte IT-afdelingen, som burde kunne hjælpe dig?
Avatar billede olebole Juniormester
07. juni 2008 - 14:50 #9
Hvis det er til det offentlige, kan du da bare lave et opslag hos CPR-registret og tjekke validiteten. Det er både sikrere og lettere  =)
Avatar billede arne_v Ekspert
07. juni 2008 - 14:59 #10
ole>

Jeg tror at de fleste arbejdsgivere vil se et CPR nummer og ditto med de fleste banker -
selvom de ikke er stat eller kommune.

Indberetning til skat og den slags ....
Avatar billede olebole Juniormester
07. juni 2008 - 15:08 #11
Arne >> Ja, der er ganske få undtagelser, hvor siteindehaveren er forpligtet til at oplyse CPR-nummeret til en statslig eller offentlig institution.

Der synes dog at eksistere en trend, som peger mod rotterende storhedsvanvid hos mange siteindehavere. Du ved, de steder, hvor man skal igennem en fem minutter lang registrering og brugeroprettelse for at få lov til at købe en pakke fødselsdagssugerør til 3,85 kr - og ofte med afkrævelse af personlige og helt unødvendige informationer  ;o)

kay_d_bee >> "men for god ordens skyld så er det til et site under det offentlige." >> Undskyld mig lige ...  =)

Ikke for at beskylde dig for at vær fyldt med løgn, men der er noget, som ikke stemmer. Du har oprettet det samme spørgsmål under Java, fordi du ikke kender forskel på Java og JavaScript.

Samtidig skriver du i:
    http://www.eksperten.dk/spm/754954

- "jeg er ikke - langt fra - ekspert, og fik derfor anbefaltet sitet her" i et spørgsmål, hvor du skriver, du ikke aner, hvordan man bruger en database til et familiesite.

At du skulle være blevet bedt om at lave 'et site under det offentlige', tillader jeg mig at tvivle krafigt på  =)
Avatar billede kay_d_bee Nybegynder
07. juni 2008 - 18:05 #12
Olebole...jeps, det her projekt er i et databasesystem, jeg kender. Det kunne familiestitet ikke være. Og nej, jeg laver ikke al programmeringen, men når nogen andre i projektet ikke kan finde ud af en del, så prøver jeg at søge hjælp, der hvor den kan være. Og hvis du skulle være i tvivl, så er denne del ikke specifikt mit område :-()

Og om du tror på, at det er til noget offentligt, ja, det rager mig egentlig. Jeg skriver det rigtige, hvad du tolker ind i det, må du selv om.

Mht. validering i cpr-registret, så sker det ikke direkte online, men i en sep. kørsel fra databasen om natten.

Og mht. it-afdelingen så står de mere for drift end for udvikling.

Og nej, det er ikke
Avatar billede nielle Nybegynder
17. juni 2008 - 06:44 #13
Har du fået løst dit oprindelige problem?
Avatar billede nielle Nybegynder
16. juli 2008 - 19:11 #14
Hvad med lidt respons?
Avatar billede nielle Nybegynder
07. september 2008 - 09:06 #15
??
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