Är det någon som har en färdig personnummerkontroll som är gjord Nä inte Java, men jag har gjort ett VB-progg om detta. Jag har ett script som kollar personnummer då man matat in det i tre olika rutor (år, månad, dag). Vill du endast ha ett inmatningsfält så får du skriva om scriptet lite. Hejsan! Hej Kanoooners Christian! Jag skrev ett nytt script som även kollar kontrollsiffran: Bara ett påpekande i all välmening.personnummerkontroll
i javascript?Sv: personnummerkontroll
Jag vet inte om du bara är ute efter själva omräkningsformeln.
I så fall så har jag den.
/WSv: personnummerkontroll
<script language="JavaScript">
function checkPnr() {
var err=0
var b=document.f1.far.value //år
var d=document.f1.fmonad.value //månad
var f=document.f1.fdag.value //dag
//basic error checking
if (b<1900 || b>3000) err = 1
if (d<1 || d>12) err = 1
if (f<0 || f>31) err = 1
//advanced error checking
// months with 30 days
if (d==4 || d==6 || d==9 || d==11){
if (f==31) err=1
}
// february, leap year
if (d==2){
// feb
var g=parseInt(f/4)
if (isNaN(g)) {
err=1
}
if (f>29) err=1
if (f==29 && ((f/4)!=parseInt(f/4))) err=1
}
if (d != "") {
if (err==1){
alert('Din inmatning av födelsedata är felaktig!');
return false;
}
}
</script>
/ChristianSv: personnummerkontroll
Har någon möjlighet att lägga upp ett sådant i VBScript/ASP så vore det kanon.
mvh
TorbjörnSv: personnummerkontroll
Lade upp ett exempel i Filarean som Ni kanske kan
översätta till Era önskemål.
http://www.pellesoft.nu/login/upload/t_view4.asp?tid=59
mvh
SvenSv: personnummerkontroll
Men jag saknar kontroll för de fyra sista siffrorna..Sv: personnummerkontroll
<code>
<script language="JavaScript">
function checkPnr() {
var err = 0 // korrekt pnr
var pnr = document.f1.fpnr.value
//personnummer 10-11 siffror med eller utan "-"
var l = pnr.length // antal siffror
// koll av antal siffror
if ( ( l == 11 && ( pnr.indexOf("-") == -1 ) ) || l < 10 ) err = 1
// plockar ut delar av pnr
var yy = pnr.substr(0,2) // år
var mm = pnr.substr(2,2) // månad
var dd = pnr.substr(4,2) // dag
var pp = pnr.substr(0,6) // sex första
var s = pnr.substr((l-4),4) // 4 sista
// koll att bara siffror används
if ( isNaN(pp) || isNaN(s) ) err = 1
// koll av månad
if ( mm < 1 || mm > 12 ) err = 1
// koll av dag
if ( dd < 1 || dd > 31 ) err = 1
// koll för 30 dagar
if ( mm == 4 || mm == 6 || mm == 9 || mm == 11 ) {
if ( dd == 31 ) err = 1
}
// skottår
if ( mm == 2 ) {
if ( dd > 29 ) err = 1
if ( dd == 29 && ( (yy/4) != parseInt(yy/4) ) ) err = 1
}
// koll av kontrollsiffra
pnr = pp + s // alla 10 siffrorna i rad
var y,x = 0 // för beräkning
for ( var i = 0; i < 9; i++ ) {
if ( i % 2 == 0 ) {y=pnr.substr(i,1)*2;if(y>9)y-=9;x+=y}
else x += (pnr.substr(i,1)*1)
}
while ( x > 9 ) x -= 10
if ( x != 0 ) x = 10 - x
// koll om siffran stämmer
if ( s.substr(3,1) != x ) err = 1
// utskrift av felmeddelande
if ( err != 0 ) {
alert("Personnumret är felaktigt");
return false;
}
}
</script>
<form name="f1" onsubmit="return checkPnr()">
<input name="fpnr"><br>
<input type="submit" value="Kolla">
</form>
</code>
/ChristianSv: personnummerkontroll
<script language="javascript"> används inte i html längre. Det ska istället vara <script type="text/javascript">
"The type attribute must be specified for each SCRIPT element instance in a document. The value of the type attribute for a SCRIPT element overrides the default scripting language for that element."
<URL:http://www.w3.org/TR/html4/interact/scripts.html>