Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Personnummer koll

Postades av 2003-11-17 12:03:26 - Mikael Aftevik, i forum javascript/dhtml, Tråden har 7 Kommentarer och lästs av 845 personer

Jag skulle behöva ett JavaScript (eller i asp-kod), en kontroll av inmatat födelsenummer i ett formulär.

Man SKALL kunna skriva in ÅÅÅÅ-MM-DD-1234,
alltså inte endast ÅÅ-MM-DD-1234
(vilket andra kontroller kollar av, som jag sökt/hittat på här på formuet).

Man kan tänka sig ett inmatningsfält, eller två. Det "viktiga" är iaf att man kan få med hela åratalet [t.ex. 1973 el 2003] samt [-]bindestrecken.

Någon som har en färdig lösning som man kan få ta del av ;-?

// Mikael


Svara

Sv: Personnummer koll

Postades av 2003-11-17 12:19:24 - Fredrik Malmström

Varför inte skippa bindestrecken och använda två textfält, ett för de 8 första, dvs ååååmmdd och ett för de fyra sista, eller om du nu måste ha bindestrecken med i kakan, kan du använda dig av ett fält för åååå, ett för mm och ett för dd, samt ett för de fyra sista.




Svara

Sv: Personnummer koll

Postades av 2003-11-17 12:36:21 - Mikael Aftevik

Stämmer, bindestrecken behöver inte vara med i inmatningen....
"tänkte fel"....
De (bindestrecken alltså) kan jag lägga till innan jag lägger in data i databasen.

Vill dock helst ha så få fält som möjligt för att slippa att hoppa mellan flera fält vid inmatningen.

/ M



Svara

Sv: Personnummer koll

Postades av 2003-11-17 14:20:04 - Roger Gusthage

Kontrollen av personnummer går till på följande sätt. Multiplicera omväxlande varje tal med 2 respektive 1.

Ex Personnummer 560321-830
5 x 2 = 10
6 x 1 = 6
0 x 2 = 0
3 x 1 = 3
2 x 2 = 4
1 x 1 = 1
8 x 2 = 16
3 x 1 = 3
0 x 2 = 0

Du får nu en sifferföljd av 10 | 6 | 0 | 3 | 4 | 1 | 16 | 3 | 0 dvs
1060341163

Summera varje enskilt ental. 1 + 0 + 6 + 0 + 3 + 4 + 1 + 1 + 6 + 3 = 25

Kontrollsiffran, dvs den sista i ett personnummer fås därefter av det tal du behöver addera till 25 för att detta nya tal skall sluta på 0.

25 + 1 = 26
25 + 2 = 27
25 + 3 = 28
25 + 4 = 29
25 + 5 = 30 < -- Slutar på noll (0).

Alltså är kontrollsiffran 5, vilket är det tal du behöver addera på 25 för att det skall sluta på noll.

Hur du löser detta och i vilken script/kod språk är inte så svårt.

Notera att med personnummer menar man 10 siffror, inte de två första siffrorna i årtalet. Det går ju att ha med det som du vill, men i strikt formell mening är personnummer endast de två sista siffrorna i årtalet. Denna kontroll är en kontroll av att personnumret KAN vara korrekt, det är inte 100% säkert.


Svara

Sv: Personnummer koll

Postades av 2003-11-17 15:34:49 - Mikael Aftevik

Jo, jag vet hur man gör kollen av kontrollsiffran.... Fick man lära sig på mattelektionerna i småskolan.

Men det jag önskar mig, är om någon hade ett klar lösning i JavaScript (eller ev. asp-kod), då jag själv inte har den kunskapen att göra en sådan funktion i JavaScript.

Å förlåt om jag kallar ett ÅÅÅÅ-MM-DD-1234 för personnummer.....


/ Mikael


Svara

Sv: Personnummer koll

Postades av 2003-11-17 15:38:43 - Sven Åke Persson

För att ditt resonemang skall vara helt korrekt så skall man börja bakifrån
då stämmer detta sätt på alla kontrollsiffrekombinationer pgiro, OCR mfl.
Ex Personnummer 560321-830
0 x 2 = 0
3 x 1 = 3
8 x 2 = 16
1 x 1 = 1
2 x 2 = 4
3 x 1 = 3
0 x 2 = 0
6 x 1 = 6
5 x 2 = 10
När det är udda antal siffror spelar det ingen roll men vid jämt antal
blir ditt sätt fel. Du kan ju kolla på en OCR text på ett pgiro.

ex 901950- ? Vad blir det. ?
Så här gör Vi i Vb skall väl inte vara så svårt att Porta till Java.
<code>
Private Function KontrollSiffra(ByVal nummer As String) As String
'Regel 1. alla beräkningar sker från slutet mot början.
'Därför blir det StrReverse
'Steg för steg så du kan följa tekniken
Dim tmpStr As String, sLen As Long, strKsum As String
Dim i As Long, Ksum As Long
tmpStr = StrReverse(nummer)
sLen = Len(nummer)
'Siffror som skall multipliceras med 2
For i = 1 To sLen Step 2
strKsum = strKsum & CStr(CLng(Mid$(tmpStr, i, 1)) * 2)
Next 'i
'Siffror som skall multipliceras med 1
For i = 2 To sLen Step 2
strKsum = strKsum & Mid$(tmpStr, i, 1)
Next 'i
sLen = Len(strKsum)
'Summera alla enskilda siffror tex 16 blir 1 + 6
For i = 1 To sLen
Ksum = Ksum + CLng(Mid$(strKsum, i, 1))
Next 'i
Ksum = 10 - (Ksum Mod 10)
If Ksum = 10 Then Ksum = 0
'Returnera resultatet
KontrollSiffra = CStr(Ksum)
End Function

Private Function Reverse(ByVal nummer As String) As String
'för Vb 5 som inte har StrReverse
Dim tmpStr As String, sLen As Long, i As Long
sLen = Len(nummer)
For i = sLen To 1 Step -1
tmpStr = tmpStr & Mid$(nummer, i, 1)
Next ' i
Reverse = tmpStr
End Function
</code>


Svara

Sv: Personnummer koll

Postades av 2003-11-18 09:39:15 - Per Malmén

>De (bindestrecken alltså) kan jag lägga till innan jag lägger in data i databasen.

Varför vill du lägga till en massa onödiga bindestreck i databasen. De kommer stå på exakt samma ställe för varje post och är extremt onödiga. Vill du ha bindestreck när du presenterar data så formatera då i så fall.


Svara

Sv: Personnummer koll

Postades av 2003-11-18 17:14:52 - Roger Gusthage

Missförstod din fråga, men på ett forum blir det lätt så.
Du behöver inte be om ursäkt, jag ville bara upplysa om detta då det i vissa fall kan ha betydelse. Det är fler än du som läser denna tråd.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 722
27 958
271 751
508
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies