On 9 Feb., 15:15, Thomas Lindgaard <tho...@it-snedkeren.dk> wrote:
> FSJ wrote:
> > Hej
>
> > Jeg bruger nedensående til at sætte html links på foreskomster af
> > mail adresser og links i en tilfældig tekst.
> > Men desværre klarer den ikke bindestreg f.eks.
www.anders-and.dk.
> > Måske er jeg heldig at en regular expression kender der ser min
> > besked....
>
> > // link
> > $str = preg_replace("/\b((http(s?):\/\/)|(www\.))([\w\.]+)([\/\w+\.]+)
> > \b/i",
> > "<a href=\"http$3://$4$5$6\" target=\"_blank\">$2$4$5$6</a>", $str);
> > // mailto
> > $str = preg_replace("/([\w\.]+)(@)([\w\.]+)/i", "<a href=\"mailto:$0\">
> > $0</a>", $str);
>
> > Venligst
> > Finn
>
> Hej Finn
>
> Du skal have ændret første parameter fra
> "/\b((http(s?):\/\/)|(www\.))([\w\.]+)([\/\w+\.]+)> \b/i"
> til
> "/\b((http(s?):\/\/)|(www\.))([\w\.]+)([\/\w+\.\-]+)> \b/i"
>
> Og hvis man skal være helt pernitten, så tillader dit regexp vist også
> URL'er der starter med punktum (f.eks.
http://.blablaellerwww..blabla), så måske skulle du i stedet ændre til
> "/\b((http(s?):\/\/)|(www\.))\w([\w\.]+)([\/\w+\.\-]+)> \b/i"
>
> --
> Mvh.
> /Thomas
Hej thomas
Det virker helt fint.
Jeg havde så troet at jeg kunne udregne hvordan e-mail adresser også
kunne understøtte bindestreg.
Den jeg har gaflet er ( måske er det dig der har lavet den ? i 2002) :
// mailto
$str = preg_replace("/^(.+)@([^\(\);:,<>]+\.[a-zA-Z]{2,4})/", "<a href=
\"mailto:$0\">$0</a>", $str);
jeg har fosøgt at sætte \- forskellige steder, men jeg kan ikke få ind
i mit hoved hvordan logikken spiller, så det vil være dejlig med lidt
hjælp.
vh
Finn