Just nu i M3-nätverket
Gå till innehåll

Validering av personnummer


yaz

Rekommendera Poster

NÅgon som kan hjälpa mig med ett valideringsskript som kontrollerar ett fält med personnummer.

 

Det ska kontrollera att det är inskrivet och att formatet är rätt. (t.ex 991221-4213)

 

Tackar på förhand!

 

//yaz

 

____________________________________________

"Yes! That's right, you got a point there!"

Länk till kommentar
Dela på andra webbplatser

ja varför inte...? det är ju också nåt =)

 

//yaz

 

 

____________________________________________

"Yes! That's right, you got a point there!"

 

Länk till kommentar
Dela på andra webbplatser

Hej

 

Om du kan använda dig av asp så har jag ett åt dig här:

'Kolla om personummret är rätt
 IF persnr = "" THEN
   errorForm "ange ett personnummer.", backpage
 ELSE
 IF Len(persnr) <> 10 THEN
   errorForm "Felaktigt angivet personnummer Ange personnummret utan bindestreck totalt 10 siffror.", backpage
 ELSE
 persnr2 = persnr

 For i = 0 to 8

 k = Left(persnr2,1)
 persnr2 = Right(persnr2,len(persnr2)-1)

 k = k * ((i + 1) Mod 2 + 1 )
 IF len(k) = 2 THEN
 totalt = totalt + Int(Left(k,1)) + Int(Right(k,1))
 ELSE
 totalt = totalt + k
 END IF

 NEXT

 IF Int(Right(totalt,1)) <> 0 THEN
   sista = 10 - Int(Right(totalt,1))
 ELSE
   sista = 0
 END IF


 IF Cint(sista) = Cint(Right(persnr,1)) THEN
  persnr = persnr
 ELSE
  errorForm "Felaktigt personummer.", backpage
 END IF
 END IF
 END IF

 

Det kontrollerar kontrollsiffran

 

Länk till kommentar
Dela på andra webbplatser

tack AddeLadde...men jag skulle föredra ett javascript som gör samma jobb...så behöver man inte skicka till servern och så svar sedan... Det ska nämligen kombineras med ett par andra kontroller...

 

Så detta som AddeLadde rekommenderar här så fint, fast i javascript vore perfekt... Någon som kan?

 

//yaz

 

 

____________________________________________

"Yes! That's right, you got a point there!"

 

Länk till kommentar
Dela på andra webbplatser

Tyvär är jag inte så bra på Javascript så jag kan hjälpa dig med det.

 

Jag kan ge dig några tips i alla fall:

Personnumret är på 10 siffror varv den sista är en kontrollsiffra. Kontrollsiffran räknas fram på det sättet att man tar första sifran i personnumret och multiplicerar det med 2 sean tar man andra sifran i pernr och multiplicerar med 1, 3:e med 2, 4: med 1 osv Alltså varanan 2 och 1.

 

Plussa sedan ihop de tal du fått. Om ett tal som du multiplicerat med blir ett tiotal exempelvis 12 så gör du om det talet till 1 + 2 = 3

 

När du sedan plusat ihoo alla talen så har du fått ett tiotal ta då 10 minus sista siffran i det tiotal du fick. Nu har du fått fram sista sifran.

 

Sedan måste även kontroller göras för datum validering om datumet finns. Glöm inte att tänka på skottår.

 

Lycka till

 

 

Länk till kommentar
Dela på andra webbplatser

tack så mycket för hjälpen!

 

Jag har i alla fall fått reda på hur man räknar sig fram till denna siffra. Så nu får jag väl sätta mig och skriva ihop nåt skript...eller försöka i alla fall...

 

Ett självklart poäng till din utförliga förklaring. ;)

 

//yaz

 

 

____________________________________________

"Yes! That's right, you got a point there!"

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...