Har ett förmodligen enkelt problem..? Det gäller validering av kontrollsiffran i ett svenskt personnummer av formatet yyyymmdd-xxxx... se nedan Fixade det...Personnummer
function chkform(f) {
var re = /^((19|20)\d{2})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])-(\d{4})$/;
if (re.test(f.pnr.value)) {
if (!isPnr(f.pnr.value)) {
alert('Felaktigt personnummer!');
return false;
}
}
else {
alert('Felaktigt personnummer!');
return false;
}
return true;
}
function isPnr(pnr) {
pnr = pnr.replace(/-/,''); // Maska bort bindestreck
pnr = pnr.substring(2); // Maska bort århundrade
// Hjälp! =)
}
...orkar inte försöka lösa det själv just nu... ;)
(kvart i tre på natten... zzzzzzzzz...)
Sv: Personnummer
function isPnr(pnr) {
pnr = pnr.replace(/-/,'');
pnr = pnr.substring(2);
var i = 0;
var str = '';
var sum = 0;
for (i=0;i<pnr.length;i++) {
if (i%2==0) {
str += pnr.substring(i,i+1)*2;
}
else {
str += pnr.substring(i,i+1);
}
}
for (i=0;i<str.length;i++) {
sum += parseInt(str.substring(i,i+1),10);
}
return sum%10 == 0;
}
Tänk vad lite sömn kan göra... ;)