![]() |
asp.net C# kontroll av personnummer.
Hej,
Jag undrade ifall någon där ute har c# .net script för att kontrollera ifall ett personnummer är rätt eller felaktig... hör av dig ifall du är ville att dela med dig av scriptet. |
Testa detta Regex:
Kod:
\d{6}-\d{4} |
Citat:
Till rätt person kan jag även lägga till att den ska ta fram telefonnummber (har koden redo för detta). Olika prioriteringar (mobilnummer, hem, jobb osv) och en mängd variabler som spelar roll. Får inte alltid fram telefonnummer (eller rätt telenummer), men bra att använda om man vill verifiera automatiskt att användaren telefonnummer är korrekt. Har detta till C# och PHP Hör av dig om du är intresserad av det. |
Citat:
|
Citat:
Hurvida detta är acceptabelt eller ej enligt de tjänsterna jag kör emot är jag inte lika insatt i, om någon är intresserad så är det eran uppgift att ta reda på om detta är tillåtet eller inte :) |
Söker man efter "personnummer programmering" på Google hittar man en tråd på sweclockers av alla ställen som innehåller exempel i både PHP och C#. Vet dock inte hur bra den koden funkar i verkligheten men när jag kikade såg det lovande ut. Man får testa lite om man vill vara säker men det borde iaf funka mycket bättre än naiva regex-lösningar som bara kontrollerar formatet och inte giltigheten.
|
Luhn-algoritmen eller moduls 10-metoden (som används för beräkning av checksiffran i bland annat personnummer) finns beskriven på Wikipedia för den som är intresserad: http://sv.wikipedia.org/wiki/Luhn-algoritmen.
|
Pseudocode:
Kod:
begin function getChecksiffra(text siffror) returns text |
ska man vara riktigt petig så metoden funkar oavsett längd på indatat så ska den se ut så här:
Pseudocode: Kod:
begin function getChecksiffra(text siffror) returns text |
Realiserade pseudokoden i C# och fixade några buggar samt renodlade strukturen något.
Här är tre filer för C# med kontroll av checksiffran enligt modulus-10-metoden. Jag har medvetet inte lagt in kontroller av datum i personnummer, det gör att klassen även kan användas för orgnr, GD-nummer m.m. Men vill man ha det så är det lätt att lägga till ytterligare kontroller i isValidate-metoden så slår det igenom direkt. Jag har valt att göra klassen enkel så den kan anpassas till specifika behov snarare än att den blir för sträng för vissa användningsområden. Finns det önskemål så kan jag lägga till mer kontroller, för det är enkelt i den struktur som finns nu. Jag la upp en separat testklass: PersonnummerTest.cs så blir det enkelt att kontrollera om klassen gör vad den ska göra, testa med ditt eget personnummer så får du se.... Filen Program.cs är där hela programmet startar i C#. Klassen Personummer.cs är byggd generellt så den kan användas oavsett om du kör Console, Winform eller Webform, eller någon annan typ av användargränssnitt, all gränssnittskod ligger i klassen PersonnummerTest.cs. Håll till godo och slit den med hälsan.... :-) Kod:
//////////////////////////////////////////////////// Kod:
//////////////////////////////////////////////////// Kod:
//////////////////////////////////////////////////// |
Alla tider är GMT +2. Klockan är nu 01:39. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson