19. februar 2007 - 11:27
Der er
6 kommentarer og 1 løsning
Personnummer validering ønsker mine basale fejl rettet
else if (document.PerOpl.NAPNR.value == "" || isInteger(document.PerOpl.NAPNR.value) == false || document.PerOpl.NAPNR.value.length<>10){ fejlmeldFelt(8,"Personnummer - format ddmmyyxxxx"); document.PerOpl.NAPNR.focus(); } I første omgang ønsker jeg bare en simpel test af personnummer. Men har nogle basale fejl i scriptet. En der gider hjælpe?
Annonceindlæg fra Bluecircle
19. februar 2007 - 11:53
#4
function IsNumeric(sText) { var ValidChars = "0123456789"; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; }
25. februar 2007 - 02:42
#6
Prøv også: <script type="text/javascript"> function cprTjeck(frm){ var cpr = frm.cpr.value; if(cpr.match(/\d{6}\-?\d{4}/)){ var aar = +cpr.substr(4,2)+2000; aar -= (aar>new Date().getFullYear())?100:0; var maaned = +cpr.substr(2,2)-1; var dag = +cpr.substr(0,2); var dato = new Date(aar,maaned,dag); cpr = cpr.replace(/\-/g,""); var chk = 0; for(i=9;i>-1;i--){ chk += (+cpr.charAt(i))*((i>2)?(10-i):(4-i)); } if(chk%11==0&&dato.getFullYear()==aar&&dato.getMonth()==maaned&&dato.getDate()==dag)return true; } alert("ikke valid CPR"); return false; } </script> ... <form name="form1" method="post" onSubmit="return cprTjeck(this);"> -- så får du testet det helt til bunden, med check af dato-validitet og checkciffers rigtighed !-)