Avatar billede grabit Nybegynder
15. december 2000 - 15:42 Der er 5 kommentarer og
2 løsninger

validering af om der er 8 til 12 alfanumeriske!!!

Skal være indtastninger af tal og bogtsaver imellem 8 og 12. Hvordan validere med dette?
jeg kender nis og dis og alt det der, men den er ikke imellem.
Avatar billede jakoba Nybegynder
15. december 2000 - 19:33 #1
I din validator til feltet skriver du fx:

var alfanum = \"abcdefghijklmnopqrstyvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\"

function ok8Til12Anum( val ) {
  if (  ( val )
    &&( val.length >= 8 )
    &&( 12 >= val.length )  ) {
    for (var i=0; val.length > i; i++ ) {
      if ( alfabet.indexOf(val.substring(i,i+1))==-1 )
          return false;                // ikke ok. ulovligt tegn
    };
    return true;                      // ok. lovlig lengde og lovlige tegn
  } else return false;              // ikke ok. For lang eller for kort
}; //end ok8Til12Anum( string ) -> boolean

funktionen kaldes med

  ok =  ok8Til12Anum( document.formname.feltname.value );

variablen ok bliver true hvis det indtastede er lovligt. Dvs 8 til 12 alfanumeriske tegn.

mvh JakobA
Avatar billede jumper Nybegynder
16. december 2000 - 05:19 #2
Ovenstående skulle virke helt fint, selv i gamle browsere. Hvis du kan bruge Javascript 1.2 (IE4+, NS4+) kan det gøres meget kortere med et regular expression:

var value = document.formName.feltName.value
var 8til12Reg = /\\d{8,12}/
if (8til12Reg.test(value)){
  // Strengen er OK
} else {
  alert(\"Fyfy, mellem 8 og 12 tal!\")
}

/Thor
Avatar billede jumper Nybegynder
16. december 2000 - 05:23 #3
Eller endnu kortere med et regular expression litteral:

if ( /\\d{8,12}/.test(document.formName.feltName.value) ){
  // Strengen er OK
} else {
  alert(\"Fyfy..\")
}

eller vi kan gå amok med et conditional if-statement:

/\\d{8,12}/.test(document.formName.feltName.value) ? alert(\"OK\") : alert(\"Fyfy\");

Sidstnævnte er dog ikke altid så praktisk at vedligeholde ;)

/Thor
Avatar billede jakoba Nybegynder
16. december 2000 - 09:02 #4
jumper >> men skulle vi ikke have bogstaver med også.

/(\\d,a..z,A..Z){8,12}/.test(document.formName.feltName.value)?alert(\"OK\"):alert(\"Fyfy\");

grabit >> ovenstående er muligvis forkert. Jeg har ikke helt check på regular expressions.
jumper >> vil du verificere / korrigere ?

mvh JakobA
Avatar billede jumper Nybegynder
16. december 2000 - 09:06 #5
*doh* Jeg skal lade være med at skrive noget herinde når kaffen ikke var færdig endnu ;)

/[\\dA-Z]{8,12}/i.test(document.formName.feltName.value) ? alert(\"OK\") : alert(\"fyfy\");

/Thor
Avatar billede grabit Nybegynder
16. december 2000 - 09:34 #6
I er nogle sjove fætre!
Tak ;)
Avatar billede jakoba Nybegynder
16. december 2000 - 15:47 #7
grabit >>  Tak. Og se der lærte jeg noget oveni at tjene 7 point.
      klammer om valgmuligheder og range indikeres med - tegn.
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