Avatar billede 7th Praktikant
07. oktober 2002 - 10:25 Der er 26 kommentarer og
1 løsning

Email validering

Hvad gør jeg forkert i min kode ?

var emailcheck = /^[^\\.]?[\\w\\.-]+@[^\\.]?[\\w\\.-]+\\.[A-Z]{2,3}$/i;

if (! emailcheck.test (document.kontakt.email.value))
// hvis værdien i email feltet ikke svarer til emailcheck så meld fejl.

Den melder fejl uanset hvad. Forresten skal jeg bruge emailcheck.test eller emailcheck.match ?
Avatar billede 7th Praktikant
07. oktober 2002 - 10:57 #1
Jeg har lavet det om til
if (! document.kontakt.email.value.match (emailcheck))
men det virker desværre stadigvæk ikke...
Avatar billede Slettet bruger
07. oktober 2002 - 15:28 #2
Vis noget mere kode.
Avatar billede 7th Praktikant
07. oktober 2002 - 19:43 #3
Der er faktisk ikke mere kode. Undskylder at jeg ikke har uddybet fejlen.
Fejlen består i, at den ikke vil godkende email adresser, så det må være /^[^\\.]?[\\w\\.-]+@[^\\.]?[\\w\\.-]+\\.[A-Z]{2,3}$/i som der er noget galt med, da jakobas /^[\da-z\._\-]{1,50}@[\da-z\._\-]{1,50}\.[\da-z]{2,3}$/ godt virker. Jakobas check godkender kun små bogstaver samt . som et gyldigt tegn, hvilket den første skrevet af jumper ikke gør. Håber der er nogen som kan se fejlen i den første så.
Avatar billede 7th Praktikant
07. oktober 2002 - 20:06 #4
Min form hedder kontakt.

Indeholder dette felt - <input name="email" size="35" type="text" value="">

Har en onclick - onclick="return checkform();"

Har så funktionen
function checkform()
{
var emailcheck = /^[^\\.]?[\\w\\.-]+@[^\\.]?[\\w\\.-]+\\.[A-Z]{2,3}$/i;
if (! document.kontakt.email.value.match (emailcheck))
strError = 'bla bla fejl';
}
Avatar billede Slettet bruger
08. oktober 2002 - 13:58 #5
Prøv følgende:
var emailcheck = new RegExp("/^[^\\.]?[\\w\\.-]+@[^\\.]?[\\w\\.-]+\\.[A-Z]{2,3}$/", "i");
if(!emailcheck.test(document.kontakt.email.value))
{
}
Avatar billede Slettet bruger
08. oktober 2002 - 14:00 #6
Sagen er at du ikke opretter et regular expression objekt, så vidt jeg kan se! Men det kan jo også være du har et problem dit regular expression.
Avatar billede 7th Praktikant
08. oktober 2002 - 14:49 #7
Jeg har taget expression objektet herfra http://www.eksperten.dk/spm/26016
men jeg kan bare ikke få den til at virke... Dit virker desværre heller ikke. Den vil ikke godkende nogen form for email adresse :(
Avatar billede Slettet bruger
08. oktober 2002 - 14:54 #8
Prøv med det her regexp så!
^[a-z0-9]+[a-z0-9\.\-\_]*@[a-z0-9]+(([\.\-][a-z0-9]+)?)*\.[a-z]{2,3}$\
Avatar billede 7th Praktikant
08. oktober 2002 - 15:14 #9
Bravo, takker :) Jeg har ingen forstand på regular expression objekter, men nu virker det...næsten. Hvis du vil lave det så den sidste lige kommer med, får du 20 points og en meget taknemmelig bruger ;)

abc@abc.dk - valideres korrekt som email adresse.
abc.abc@abc.dk - valideres korrekt som email adresse.
abc_abc@abc.dk - valideres korrekt som email adresse.

abc@.abc.dk - valideres forkert som en invalid email adresse.
abc@abc.dk. - valideres korrekt som en invalid email adresse.
.abc@abc.dk - valideres korrekt som en invalid email adresse.

abc.@abc.dk - valideres korrekt som email adresse. Denne mangler jeg.
Avatar billede Slettet bruger
08. oktober 2002 - 17:38 #10
abc@.abc.dk er da ikke korrekt?
Avatar billede 7th Praktikant
08. oktober 2002 - 17:43 #11
Nej den havde jeg glemt at skrive. Godt du mindede mig om det, men abc@.abc.dk valideres forkert som en invalid email adresse også ;)

Den eneste jeg mangler er abc.@abc.dk, sidder og roder med det, men er på bar bund.
Avatar billede Slettet bruger
08. oktober 2002 - 20:58 #12
Geee er lige lidt forvirret!
Hvad skal du have til at virke helt præcist?
Avatar billede 7th Praktikant
08. oktober 2002 - 23:52 #13
Jeg vil gerne have regular expression objektet til at validere omkring den del før @'et. Altså hvis der før @'et kun er et . som f.eks her i denne email adresse "abc.@abc.dk" skal det ikke være en valid email adresse. Håber du forstår nu ;)

Som der er nu bliver "abc.@abc.dk" valideret som en korrekt email adresse, hvilket ifølge min hukommelse er forkert.
Avatar billede Slettet bruger
09. oktober 2002 - 03:53 #14
Dvs sige at abc.@abc.dk og abc@.abc.dk skal valideres som forkerte bare for at vi er 100% enige!?
Avatar billede Slettet bruger
09. oktober 2002 - 04:00 #15
Hmmm... jeg fixer det lige engang i morgen! Har nemlig også lige bemærket en anden bug!
Avatar billede 7th Praktikant
09. oktober 2002 - 10:35 #16
Jepper. abc@.abc.dk valideres forkert i den nuværende regexp variabel, hvilket jo er rigtigt, så den er med. Det er kun abc.@abc.dk som ikke bliver valideret forkert.

Puha forvirrende med alle de prikker... ;)
Avatar billede Slettet bruger
09. oktober 2002 - 16:52 #17
var emailcheck = new RegExp("/^[a-z0-9]+[a-z0-9\.\-\_]*@[a-z0-9]+(([\.\-][a-z0-9]+)?)*\.[a-z]{2,3}$\", "i");
var dobbeltdotcheck = new RegExp("/\.\./", "i");/*Hvis abc..abc@abc.dk eller abc@abc..abc.dk*/
var dotalignacheck = new RegExp("/\.@/","i"); /*Hvis .@
*/
if(emailcheck.test(document.kontakt.email.value)==false || dotalignacheck.test(document.kontakt.email.value == true || dobbeltdotcheck.test(document.kontakt.email.value) == true)
{
}

NB: Jeg har ikke testet det, men det burde virke!
Avatar billede 7th Praktikant
09. oktober 2002 - 17:19 #18
Oki prøver tester lige, vender tilbage efter aftensmad.
Avatar billede 7th Praktikant
10. oktober 2002 - 11:35 #19
Jeg har endnu ikke testet det, men det ser umiddelbart fint ud, og hvis det ikke skulle virke alligevel, har du ihvertfald givet mig en del at arbejde videre med, så takker mange gange for hjælpen ;)
Avatar billede 7th Praktikant
10. oktober 2002 - 11:36 #20
Hov forresten må du da gerne lægge et svar tak ;)
Avatar billede Slettet bruger
12. oktober 2002 - 03:43 #21
Lige lidt mere ...
http://developer.netscape.com/docs/manuals/js/client/jsref/bklast.htm
gå til RegExp i den alfabetiske liste der kan du læse lidt mere om hvordan du kan bruge regular expressions i javascript! :)
Avatar billede 7th Praktikant
12. oktober 2002 - 14:18 #22
Oki takker endnu engang :)
Avatar billede the_zyx Nybegynder
05. august 2003 - 23:58 #23
Jeg fatter simpelthen ikke hvordan det virker?!?
Avatar billede the_zyx Nybegynder
05. august 2003 - 23:59 #24
I min form fungere det desværre ikke..

HELP ;D
Avatar billede Slettet bruger
06. august 2003 - 00:31 #25
1: Det er noget skodet kode fra da jeg noob til javascript....
2: Find et andet eksempel...
3: Der er masser af eksempler....
men men men...
<script language="javascript">
function emailcheck()
var emailcheck = new RegExp("/^[a-z0-9]+[a-z0-9\.\-\_]*@[a-z0-9]+(([\.\-][a-z0-9]+)?)*\.[a-z]{2,3}$\", "i");
var dobbeltdotcheck = new RegExp("/\.\./", "i");/*Hvis abc..abc@abc.dk eller abc@abc..abc.dk*/
var dotalignacheck = new RegExp("/\.@/","i"); /*Hvis .@
*/
if(emailcheck.test(document.kontakt.email.value)==false || dotalignacheck.test(document.kontakt.email.value == true || dobbeltdotcheck.test(document.kontakt.email.value) == true)
{
return true;
}
return false;
}
<script>
<form name="kontakt" onsubmit="if(emailcheck()){return true;}else{alert('fejl');return false;}">
<input type="text" value="" name="email">
<input type="submit" value="TEST">
</form>
Avatar billede the_zyx Nybegynder
06. august 2003 - 10:46 #26
Mange tak.. det var pænt af dig!!
Avatar billede the_zyx Nybegynder
06. august 2003 - 11:01 #27
Den melder fejl i linie 3 tegn 1..
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