Avatar billede xxx222 Nybegynder
12. februar 2009 - 09:26 Der er 5 kommentarer og
1 løsning

Form Validering

Kære eksperter.

Jeg er desværre ret grøn i form validering og har derfor brug for at få tilføjet lidt forskellige ting i nedenstående nuværende validering:

<script type="text/javascript">

function TestDataCheck(){
    var navn = document.myform.navn.value;
    var email = document.myform.email.value;
    var imei = document.myform.imei.value;
    var returnval;
   
    if (navn==""){
        alert("Indtast venligst dit navn")
        document.myform.navn.focus()
        return false
    }

    if (email==""){
        alert("Indtast venligst din email")
        document.myform.email.focus()
        return false
    }

    if (imei==""){
        alert("Indtast venligst imei nummer. Du får det vist ved at taste: *#06#")
        document.myform.imei.focus()
        return false
    }
}
</script>


Følgende ønskes tilrettet / tilføjet:

- Validering af e-mail adressen i feltet "email"
- Feltet "Imei" skal indeholde 15 tal, KUN tal - ingen mellemrum. Herudover er det et krav at de 2 førte tal er 35

Det var faktisk det hele, håber det kan implementeres i det nuværende kode stump!
Avatar billede nicklasb Nybegynder
12. februar 2009 - 09:35 #1
IMEI-nummeret kan du validere med:

if (!(new RegExp("^35\d{13}$").test(elem.className))) {
    ...
}

Der er mange meninger om, hvornår en e-mail er valid (selv om der findes standarder for det) - men for blot at tage en af dem, kan følgende regulære udtryk bruges:

^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$

Du tester på den, på samme måde som du tester IMEI-nummeret ovenfor..
Avatar billede nicklasb Nybegynder
12. februar 2009 - 09:36 #2
.. og så er det selvfølgelig variablen imei du skal teste på. Altså ...test(imei)...
Avatar billede xxx222 Nybegynder
12. februar 2009 - 10:04 #3
d
Avatar billede xxx222 Nybegynder
12. februar 2009 - 10:04 #4
Email tjek ser ud til at virke fint, men IMEI virker ikke

Der tjekkes iht. ovenstående på følgende ^35\d{13}$
Men lige meget hvilken sammensætning jeg laver i feltet, melder systemet fejl.

sætter jeg for sjov kun reglen til ^35 finder den ganske rigtigt ud af at der skal startes med 35, men resten virker ikke.

Gentager lige mine krav endnu engang:

IMEI SKAL indeholde 15 tal
Ingen tegn eller bogstaver tilladt
De første 2 tal SKAL være 35


TAK :)
Avatar billede nicklasb Nybegynder
12. februar 2009 - 10:12 #5
Det er fordi \'en skal escapes. Du kan også prøve med:
^35[0-9]{13}$
Avatar billede xxx222 Nybegynder
12. februar 2009 - 10:16 #6
Takker - alt virker nu efter hensigten!
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