Avatar billede hoejgaard Juniormester
14. februar 2009 - 15:54 Der er 9 kommentarer og
1 løsning

bindestreg tillades i emailadresse

Jeg har følgende:

!eregi("^[a-zA-Z0-9_.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$" , $_POST[email])

Men jeg vil gerne tillade bindestreg: -
i email adresser.
Hvad skal jeg ændre i ovenstående for at gøre det???
Avatar billede hoejgaard Juniormester
14. februar 2009 - 15:57 #1
og det er specielt før @ jeg tænker på som her feks.:

et-eller-andet@bla.dk
Avatar billede erikjacobsen Ekspert
14. februar 2009 - 16:05 #2
Du kan

!eregi("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$" , $_POST[email])

Men faktisk er der reelt ingen regler før @ - så hvorfor ikke bare tillade alt. Og iøvrigt hellere preg-funktionerne end ereg.
Avatar billede andreas13_fam Nybegynder
14. februar 2009 - 16:06 #3
Jeg er ikke særlig skrab til reg.exp men jeg skal da prøve.
^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$
jeg forstår ikke helt hvorfor der er en . i den første Character classes da det vist betyder alle tegn.
Avatar billede erikjacobsen Ekspert
14. februar 2009 - 16:08 #4
Inden i en [...] betyder . bare .
Avatar billede ksoren Nybegynder
14. februar 2009 - 16:08 #5
Hvis punktum forekommer i en klasse, så betyder tegnet blot punktum, og ikke alle tegn.
Avatar billede ksoren Nybegynder
14. februar 2009 - 16:10 #6
En lille en mere: hvis bindstrengen støder op mod [ eller ], så behøver den ikke escapes med \
Avatar billede andreas13_fam Nybegynder
14. februar 2009 - 16:16 #7
Sådan må det vist være
<?php
$test = "et-eller-and-et@bla.dk";
if (preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/" , $test))
{
echo 'korekt email adresse';
}
else
{
echo 'forkeret e-mail';
}
?>
Avatar billede hoejgaard Juniormester
14. februar 2009 - 16:19 #8
tak erik det var godt !

Du vil ikke ha points, ka jeg se...

så de må gå til andreas der også havde et godt bud...
læg et svar andreas
Avatar billede andreas13_fam Nybegynder
14. februar 2009 - 16:20 #9
Nå ok ja jeg lære noget nyt hver dag, men så er der da ingen grund til at bruge \ i den sidste character classe, og slet ikke 2 gange
if (preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+$/" , $test))
Avatar billede andreas13_fam Nybegynder
14. februar 2009 - 16:21 #10
Jo tak, her er et svar :)
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