18. april 2004 - 17:30Der er
8 kommentarer og 1 løsning
Hjælp til RegExp - validering af e-mail
Jeg har lavet et lille RegExp, der validerer en e-mail adresse.
En del af denne validering ser således ud: var email = new RegExp("^[a-z0-9][a-z0-9\.\_\-]*@[a-z0-9][a-z0-9\.\-]*\.[a-z]{2,4}$", "i");
Den fungerer fint bortset fra, at den tillader mere end 4 tegn i slutningen, hvor den kun skulle tillade 2 til 4 tegn (eks: nogen@domaene.infox valideres som ok selvom der er 5 tegn efter punktumet).
Hvad gør jeg galt?
Jeg er newbie med RegExp, så jeg modtager gerne andre råd, hvis der er noget, der kan gøre bedre, nemmere osv. :D
Det ser utrolig fornuftigt ud! Hvad nu hvis jeg gør således:
var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var email = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2,}$","i"); var to_specialtegn = new RegExp("[\\.\\_\\-]{2,2}","i"); var snabela = new RegExp("[\\.\\_\\-]@","i"); if(email.test(document.form.email.value)==false || to_specialtegn.test(document.form.email.value)==true || snabela.test(document.form.email.value)==true){ //Fejl-meddelse... }
Du skal i hvert fald lige have global-parameteren med i de to sidste ...
-- og lige lidt oprydning:
var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var email = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2,}$","i"); var to_specialtegn = new RegExp("[\\.\\_\\-]{2}","g"); var snabela = new RegExp("[\\.\\_\\-]@","g"); var val = document.form.email.value; if(!email.test(val) || to_specialtegn.test(val) || snabela.test(val)){ //Fejl-meddelse... }
Tak for det, så skulle det hele vist være på plads :D
Synes godt om
Ny brugerNybegynder
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.