Avatar billede jacand Nybegynder
29. juli 2008 - 17:31 Der er 9 kommentarer og
1 løsning

Validering af telefon felt er kan være tomt

Jeg har denne kode som virker lige modsat af hvad den skal, er der en der lige kan hjælpe med at tilrette den?

Den skal tjekke om mobil er på 8 tal, og kun er tal.
Den skal ikke tjekke hvis bruger ikke skriver et mobilnr (tom tilladt)

if((document.opret3.mobil.value.match(/^\d{8}$/)))
     
    {
      errors = errors+ '* mobil skal være 8 tal.\n';
        if(error == 0)
        document.opret3.mobil.select();
    if(error == 0)
    document.opret3.mobil.focus();
    error = 1;       
    }
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 17:34 #1
Måske

  if(!document.opret3.mobil.value.match(/^\d{8}|$/))
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 17:35 #2
Men er det ikke lidt dumt at forlange at telefonnummeret absolut skal skrives som 8 sammenhængende cifre. Jeg husker nogle telefonnumre som enten "xx xx xx xx" eller "xxx xxx xx", eller sågar "xxxx xxxx". Jeg synes det virker uforskammet, hvis jeg skal påtvinges at skrive dem "xxxxxxxx" - og det øger altså også muligheden for at skrive forkert.
Avatar billede jacand Nybegynder
29. juli 2008 - 17:45 #3
Jo selvfølgelig var det ! er manglede, du har jeg også kun bruge et par timer på det <:o)

dog tillader if(!document.opret3.mobil.value.match(/^\d{8}|$/)) ikke mobil at være tom, så jeg kom op med denne her.
er det muligt at lave et tjek så man kan skrive mobil nr om du skriver xx xx xx xx osv.?

if((document.opret3.mobil.value.length > 0))
{
if((!document.opret3.mobil.value.match(/^\d{8}$/)))
    {
      errors = errors+ '* mobil skal være 8 tal.\n';
        if(error == 0)
        document.opret3.mobil.select();
    if(error == 0)
    document.opret3.mobil.focus();
    error = 1;       
    }
}
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 18:43 #4
Jah, det må være sommervarmen. Du kan med een if:

  if(!/^\d{8}|$/.test(document.opret3.mobil.value))

Det kan tænkes at jeg mente noget i den retning før.
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 18:44 #5
Det med mellemrum er jo egentlig nemt. Du laver en replace " " til "" inden du tjekker for om der er 8 cifre. Men gemmer helst originalen i databasen.

Men nu er jo lige de der svenskere - må man ikke skrive "+47 xxxxxxxxxxx" ? Eller gider du bare ikke have svenske kunder?
Avatar billede jacand Nybegynder
29. juli 2008 - 19:48 #6
Jeg blir vist aldrig gode venner med javascript :-)
Findes der en replace der fjerner alle mellemrum på en gang ligesom i asp?
Jeg har prøvet med document.opret3.mobil.value.replace(" ","") men den fjerner kun det ene mellemrum (f.eks. 11 22 33 44 blir til 1122 33 44)
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 20:11 #7
Nå ja:

  document.opret3.mobil.value.replace(/ /g,"")
Avatar billede jacand Nybegynder
29. juli 2008 - 20:23 #8
Så kom jeg frem til denne som virker som den skal, tak for hjælpen.
Smider du lige et svar?

mobil = document.opret3.mobil.value.replace(/ /g,"")
if((mobil.length > 0))
{
if((!mobil.match(/^\d{8}$/)))
    {
      errors = errors+ '* Mobil skal være 8 tal.\n';
        if(error == 0)
        document.opret3.mobil.select();
    if(error == 0)
    document.opret3.mobil.focus();
    error = 1;       
    }
}
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 20:44 #9
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede jacand Nybegynder
29. juli 2008 - 20:57 #10
Ok, og endnu en gang tak for hjælpen :-)
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