---
title: "personnummerkontroll"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/43195-personnummerkontroll"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "yaz"
published: "2002-05-06T16:33:49.000Z"
updated: "2002-05-17T07:59:09.000Z"
replies: 8
views: 481
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/43195-personnummerkontroll"
---

# personnummerkontroll

## #1 — yaz, 2002-05-06T16:33Z

Ah. Detta är mitt första inlägg i webforum!

jag behöver er hjälp. 

Har sökt efter tidigare inlägg inom temat personnummer men alla hänvisade till inlägg med en länk. När jag klickade på den länken fick jag 404 error  :l 

Nu till scriptet;

Ett skript som kontrollerar sista siffran i personnumret (helst personnummer med bindestreck, då detta är rätt standariserat). Om kontrollen är positiv dvs att kontrollsiffran är korrekt, ska formuläret köras i vanlig ordning - informationen ska alltså skickas vidare till verify.asp som är en bekräftelsesida. 

Om kontrollen visar på ett felaktigt personnummer ska man helt enkelt få upp en 'alert' och formuläret ska *inte* köras. Man ska alltså stanna kvar där man är på sidan för att rätta till felet.

Är detta svårt att göra? Hoppas att någon kan hjälpa mig med detta. Mitt hopp ligger hos er!  ;)

Permalänk: https://www.webforum.nu/p/43195

## #2 — Jojoxx, 2002-05-06T18:37Z

Kanske lite overkill, men jag slängde ihop ett personnummer-objekt som gör en del andra kollar också.

```
function personnummer(nr){
	this.valid=false;
	if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; }
	this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
	this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
	this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
	if(this.month*1>12||this.day*1>months[1]){ return false; }
	this.alldigits=this.year+this.month+this.day+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
	this.sex=parseInt(this.controldigits.substring(2,3))%2;
}
```

Från formulärstaggen kan du anropa det med;

```
<form action="verify.asp" method="post" onSubmit="pn=new personnummer(this.p.value); if(!pn.valid){ alert('Felaktigt personnummer'); } return pn.valid;">
Personnummer: <input type="text" name="p">
...resten av formuläret
```

Permalänk: https://www.webforum.nu/p/666928

## #3 — yaz, 2002-05-07T16:51Z

skriptet funkar **utmärkt**!! det är ju klart det skulle funka :D

\*Lägger in det på sajten. Sparar det i arkivet för användbara skript\* .....ah så där!

Jag tackar dig från hela mitt hjärta! TACK! :D

Du kommer finnas omnämnd på sajten; den saken är säker! :)

Permalänk: https://www.webforum.nu/p/670287

## #4 — Erik Juhlin, 2002-05-07T19:17Z

Kollar det scriptet organisationsnummer också?

Permalänk: https://www.webforum.nu/p/670355

## #5 — Erik Juhlin, 2002-05-07T19:39Z

Kollade lite noggrannare nu. Snygg script. Kanske något för Wf's script-arkiv? :)

Permalänk: https://www.webforum.nu/p/670364

## #6 — voigtann1, 2002-05-07T20:01Z

fattar inte hur du orkar göra en sådan sak =)

Permalänk: https://www.webforum.nu/p/670373

## #7 — Jojoxx, 2002-05-08T05:39Z

Har tittat lite närmare på orginisationsnummer och de kan exempelvis börja på 556303. Detta skulle för ett personnummer betyda att personen är född månad 63, och det är ju inte ett godkänt personnummer. Plockar man dock bort kollen av datum så validerar resten. Checksumman är alltså den samma, men jag ska leta lite till och se om det finns något annat att kolla på org.nr.

Jag kan lägga upp det i arkivet sen.

Permalänk: https://www.webforum.nu/p/670467

## #8 — medialabs, 2002-05-08T07:40Z

hojta till när ni har kommit på hur man kollar Organisations nummer...

skulle själv behöva ett sådant

Permalänk: https://www.webforum.nu/p/670504

## #9 — yaz, 2002-05-17T07:59Z

Jojoxx! Jag ska berätta vad som hänt: 

Jag och ett par kompisar skojade lite grand, och vi skulle testa våra personnummer (okej, SÅ skoj var det inte. men iaf). Jag använde mig av skriptet som du skrivit.

Alla testar sina personnummer och klarar det galant. 

Men **en** av polarnas personnummer stämde inte enligt skriptet. Vi blev väldigt konfunderade och skojade med honom rejält. Att han hade glömt sitt personnummer eller lärt sig det fel.. :e

men för att lösa det laddade vi ner ett c++ pogram som gör samma koll....och då klarade hans personnummer kontrollen...

då måste det vara något fel på skriptet som du skrivit....eller? jag vet inte.... :q

Permalänk: https://www.webforum.nu/p/674781

---

Tråden på webben: https://www.webforum.nu/amne/javascript/43195-personnummerkontroll
