28. august 2010 - 09:19Der er
6 kommentarer og 1 løsning
CPR-NR med bindestreg validering.
Jeg har fundet følgende regexp på nettet til validering af cpr nr: ^(?:(?:31(?:0[13578]|1[02])|(?:30|29)(?:0[13-9]|1[0-2])|(?:0[1-9]|1[0-9]|2[0-8])(?:0[1-9]|1[0-2]))[0-9]{3}|290200[4-9]|2902(?:(?!00)[02468][048]|[13579][26])[0-3])[0-9]{3}|0000000000$
Det virker også fint, men det validerer desværre ikke et cpr.nr med '-', og det vil vi gerne. Jeg har forsøgt at få ovenstående til at ignorere '-' karakteren på plads nr. 7. Desværre uden held... Er der een der kan hjælpe med at rekonstruere ovenstående så den også kan sluge et cprnr med bindestreg?
Man kan altid lige lave en replace inden man fyrer regex af jo, rydde lidt op i mellemrum mv. Ingen grund til at komplicere en regex mere end den allerede er i forvejen :)
Nu afgav jeg desværre point før jeg testede det...den accepterer ikke tal med bindestreg før de fire cifre. Det optimale vil være at regexp udtrykket kun giver mig alle tallene tilbage...
Problemet med ovenstående er, at det ikke validerer datoer i skudår efter år 2000 korrekt - test eksempelvis med: 290204-4216
RegEx nederst bør håndtere dette. Desuden accepteres følgende kombinationer mellem datodel og 'løbenummer' - angivet i ' ': '','<space>','-','<space>-','-<space>','<space>-<space>'
Det med fed markerede håndterer 'skilletegnene' og det i kursiv (det næstsidste 9-tal) er justering for at få 29. februar i årstal efter 2001 til at fungere korrekt.
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.