FAQ |
Kalender |
2006-01-21, 21:04 | #1 | |||
|
||||
Klarade millennium-buggen
|
Om jag har ett formulär, och kunden knappar in sitt personnummer. Vill att det då görs en kontroll av numret och namn hämtas in. Går det att göra? och i så fall hur?
|
|||
Svara med citat |
2006-01-21, 23:42 | #2 | ||
|
|||
Banned
|
|||
Svara med citat |
2006-01-22, 11:18 | #3 | ||
|
|||
Medlem
|
Jag har en avancerad personnummer-kontroll som dessutom kontrollerar om datumet är korrekt, samt som klarar av flera format i stil med 19YYMMDD-XXXX, eller YYMMDDXXXX, och allt där i mellan. Eftersom den är riktigt smidig att använda, samt kostat en del att utveckla vill jag inte ge bort den gratis. Men hör gärna av dig med ett bud.
|
||
Svara med citat |
2006-01-22, 11:23 | #4 | ||
|
|||
Mycket flitig postare
|
Haha. Kostat en del att utveckla? Förlåt, men jag måste skratta lite där. En sån skriver man på en kvart. Max.
|
||
Svara med citat |
2006-01-22, 11:42 | #5 | |||
|
||||
Mycket flitig postare
|
Citat:
Citat:
|
|||
Svara med citat |
2006-01-22, 12:08 | #6 | ||
|
|||
Supermoderator
|
Citat:
__________________
www.ip2nation.com (ip till land) |
||
Svara med citat |
2006-01-22, 12:51 | #7 | ||
|
|||
Mycket flitig postare
|
Japp, personangrepp kan vi skippa, kan tom vara så vänlig att jag postar en variant åt dig. Denna kollar dock inte giltigheten på århundradet, vilket gör att du kan knappa in att du är född på 1700-talet utan att den klagar.
Kod:
function valideraPersonnummer(x) { x = x.replace(/[^\d]/g,''); if (x.length==10) { var y = parseInt(x.substring(0,2)); var m = parseInt(x.substring(2,4)); var d = parseInt(x.substring(4,6)); var n = parseInt(x.substring(6,10)); } else if (x.length==12) { x = x.substring(2,12); var y = parseInt(x.substring(2,4)); var m = parseInt(x.substring(4,6)); var d = parseInt(x.substring(6,8)); var n = parseInt(x.substring(8,12)); } else { alert("Fel antal siffror i personnummer"); return false; } var datum = new Date(y,m-1,d); if ((d!=datum.getDate()) || (m!=datum.getMonth()+1) || (y!=datum.getYear())) { alert("Felaktigt datumformat"); return false; } var s=0; for (i=0; i<9; i++) { var t = parseInt(x.substring(i,i+1)); if (i%2==0) t*=2; if (t>=10) s=s+1+(t%10); else s+=t; } var c=10-Math.floor(s%10); if (c==10) c=0; if (c!=(n%10)) { alert("Felaktig kontrollsiffra"); return false; } alert("Personnummer korrekt"); return true; } |
||
Svara med citat |
2006-01-22, 12:52 | #8 | ||
|
|||
Medlem
|
Samtliga personnummerkontroller jag sett på internet är usla. Inte ens banken klarar att man skriver in personnumret man är van med, jag har hört folk som inte kunnat lägga en beställning eftersom de skrev 820529-2322 istället för 1978... osv. Så skriver man utan bindestreck, eller råkar skriva skriva en bokstav i mitten blir det oftast fel.
Det arbete jag lagt ner handlar alltså väldigt lite om själva koden. Det handlar om att se hur folk skriver in sitt nummer samt anpassa det till hur man vill ha det sparat i sitt system. Själva koden är inte allt; har Blocket låg kunskapsnivå bara för att deras sida är lätt att koda!? |
||
Svara med citat |
2006-01-22, 15:27 | #9 | |||
|
||||
Flitig postare
|
Citat:
En tjänst som (vad jag förstår) erbjuder det är infodat a . s e där kan man få fram det mesta genom att ha personummret. w w w.infodata.se/produkt/a_o_infocus.asp kanske är något? "Det finns kommunikationsprogram för olika tekniska plattformar, som PC Windows/NT (DLL) och UNIX (SO-fil). För vissa tjänster finns möjlighet att använda JAVA samt SOAP / Web Services. För den som vill kommunicera med InfoTorg via ”öppet” Internet finns SSL-stöd (kryptering)." Om du bara vill ha en funktion som räknar ut om personnumret är "riktigt" (dvs om kontrollsiffran stämmer) och tillhör en kvinna eller man så rä det dock betydligt lättare att lösa (en sån funktion har jag liggandes skriven i php om det är någon som vill ha den så skicka ett pm) |
|||
Svara med citat |
Svara |
|
|