Avatar billede ohmish Nybegynder
25. juni 2004 - 00:08 Der er 4 kommentarer og
1 løsning

Ereg: find og udtag emailadresse i tekst

Godaften

Hvordan kan jeg med regex finde og tage emailadresse + navn ud af et html/javascript link?

<A HREF="java script:mail('email¤adresse.dk');">Navn</A>

Tak
Avatar billede dennismp Nybegynder
25. juni 2004 - 00:33 #1
<?php
$str = '<A HREF="java script:mail(\'email¤adresse.dk\');">Navn</A>'.
      '  <A HREF="java script:mail(\'email¤adresse.dk\');">Navn</A>';
preg_match_all("/<A HREF=\"java script:mail\('([^']+)'\);\">([^<]+)<\/A>/",$str,$match);

for($i=0;$i<count($match[0]);$i++) {
    print 'email: ' . str_replace('¤','@',$match[1][$i])  . ' navn: ' . $match[2][$i] . '<br>';
}
?>
Avatar billede jaw Nybegynder
25. juni 2004 - 00:39 #2
G'aften...

Ved godt Dennis allerede har svaret, men nu har jeg siddet og leget lidt med det. Faktisk fordi jeg selv har lidt svært ved at fatte preg_ og nåede frem til:

$str = "<A HREF='java script:mail('email@adresse.dk');>";
preg_match("/\b[A-Z0-0._%+-]+@[A-Z0-9._%-]+.[A-Z0-9._%-]/i",$str, $matches);

Dennis, vil meget gerne høre fra dig, hvis du har nogen kommentarer til mit forslag :) Vil jeg jo gerne lære det...
Avatar billede ohmish Nybegynder
25. juni 2004 - 00:47 #3
jeg fandt selv ud af det. men vil gerne høre om min måde er kluntet/forkert eller ikke tager højde for særlige ting:

<?php
$buf = "<A HREF=\"java script:mail('email¤adresse.dk');\">Navn</A>";

if (preg_match('/mail\(\'([A-ZÆØÅæøåa-z0-9_\.]+¤[A-ZÆØÅæøåa-z0-9_\.]+\.\w+)/i',$buf,$email)) {

$email = str_replace("¤","@",$email);
preg_match('/\);">([A-ZÆØÅæøåa-z0-9_\. ]+)/i',$buf,$navn);
echo $email[1]." / ".$navn[1];
} else { echo "fejl/intet"; }
?>
Avatar billede dennismp Nybegynder
25. juni 2004 - 01:01 #4
jaw: Det ser fin ud. Du matcher mere generelt end jeg gør. Hvad der er bedst kommer an på situationen - men det ser da ud til at du har fattet noget af regulære udtryk til at du kan bruge dem :)
Avatar billede jaw Nybegynder
25. juni 2004 - 01:04 #5
Dennis: Ok, tak for inputtet :)
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