Avatar billede janemil Nybegynder
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?
Avatar billede janemil Nybegynder
19. februar 2007 - 11:37 #1
(document.PerOpl.NAPNR.value.length!=10 || isInteger(document.PerOpl.NAPNR.value) != true)

Det er isInteger som driller mig.
Avatar billede cpufan Juniormester
19. februar 2007 - 11:49 #2
ja tallet er for langt til at være integer,
så det skal blot teste på om det er et tal
Avatar billede janemil Nybegynder
19. februar 2007 - 11:53 #3
åhhh. Tak.
Ligger du svar?
Avatar billede cpufan Juniormester
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;
 
  }
Avatar billede cpufan Juniormester
19. februar 2007 - 11:53 #5
her
Avatar billede roenving Novice
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 !-)
Avatar billede janemil Nybegynder
25. februar 2007 - 14:28 #7
Tusinde tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester