-
Validatori regex confusi
Ho questi 2 codici che rendono cliccabili mail o url se inseriti nel textarea, però nel testo devo inserire uno o l'altro per renderli indipendenti dal rest, se li inserisco entrambi rendono linkabile anche il testo che sta in mezzo (tutta la parte azzurra) es:
testo1 piero@mail.it testo2 www.sito.it testo3
Codice PHP:
$messaggio = preg_replace("/([ ](.*)[@](.*)[.][a-z]{2,4})/","<a href=\"mailto:$0\" class=\"carattereText\">$0</a>",$messaggio);
$messaggio = preg_replace("/(ftp(s|es)?:\/\/|sftp:\/\/|http(s)?:\/\/|www\.)(.*)[ ]/","<a href=\"$0\" target=\"_blank\" class=\"carattereText\">$0</a>",$messaggio);
E poi li richiamo nel textarea
Codice HTML:
$tabella .= "<div id=\"tabella-long\">";
$tabella .= "<span class=\"carattereMess\">$messaggio</span>";
$tabella .= "</div>";
-
Prova ad aggiungere un \b (\\b se usi i doppi apici per delimitarle) all'inizio e alla fine di ciascuna regexp... (\b sta per "word boundary", dovrebbe individuare correttamente l'inizio e la fine di un URL).
Stammi bene...