Localizzazione e formattazione email in testo generico
ominide
ominide non è online. Ultima attività: 16/02/2009 17.30.18ominide
il 6 dicembre 2007 alle 16.45
69 messaggi dal 14 ottobre 2002
Ciao a tutti, ho cercato un po' in giro ma non ho trovato molto di utile.
Il mio problemino è il seguente:

ho una textarea dove gli utenti possono inserire del testo, all'interno del testo è possibile che inseriscano un indirizzo email, dovrei fare in modo che quando poi il testo viene visualizzato una funzioncina individua se nel testo è stato inserito un indirizzo email e lo trasforma in un link utilizzabile con la solita sintassi

<asp:HyperLink runat=server navigateUrl="mailto:mail@mail.it">mail@mail.it</asp:HyperLink>

più o meno come succede nella magior parte dei forum...

Grazie mille per l'aiuto!
Microsoft Most Valuable Professional
RE: Localizzazione e formattazione email in testo generico
nostromo
nostromo non è online. Ultima attività: 04/07/2009 1.44.08nostromo Top Poster
il 6 dicembre 2007 alle 17.58
direi che la cosa migliore da fare è usare una regular expression per individurare ogni indirizzo email, e poi agire di conseguenza.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
RE: Localizzazione e formattazione email in testo generico
ominide
ominide non è online. Ultima attività: 16/02/2009 17.30.18ominide
il 6 dicembre 2007 alle 18.09
69 messaggi dal 14 ottobre 2002
mumble... ho fatto cosi e funziona tutto tranne il replace finale...
no capisco cosa c'è che no va...

vado a bere un tè caldo e ci penso su


    public static string FormattaEmail(string testo)
    {
        string mail = string.Empty;
        string mailFormattata = string.Empty;
        string[] separatori =  new string[4];
        separatori[0] = " ";
        separatori[1] = "<br />";
        separatori[2] = ":";
        separatori[3] = ",";

        if (testo.Contains("@"))
        {
            string [] parole = testo.Split(separatori, System.StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < parole.Length; i++)
            {
                if (parole[i].Contains("@"))
                {
                    mailFormattata = string.Empty;
                    mail = string.Empty;

                    for (int k = 0; k < parole[i].Length; k++)
                    {
                        mail += parole[i][k].ToString();
                    }
                    mailFormattata = "<a href='mailto:" + mail + "'>" + mail + "</a>";

                    testo.Replace(mail, mailFormattata);
                }
            }
        }
        return testo;
    }
RE: Localizzazione e formattazione email in testo generico
efran.cobisi
efran.cobisi non è online. Ultima attività: 09/01/2008 13.22.16efran.cobisi
il 7 dicembre 2007 alle 10.30
Contributi | 47 messaggi dal 18 settembre 2006
A parte il fatto che Replace ritorna la stringa rimpiazzata e non ne sovrascrive l'istanza in cui richiami il metodo (le stringhe sono immutabili), perchè non usi, come suggerito, un'espressione regolare?

Guarda qui:

public static string FormattaEmail(string testo)
{
    return Regex.Replace(testo, @"[^\s]*?@[^\s]*", "<a href=\"mailto:$&\">$&</a>");
}


E' solo un punto di partenza ma fa ciò di cui hai bisogno...

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
Microsoft Most Valuable Professional
RE: Localizzazione e formattazione email in testo generico
nostromo
nostromo non è online. Ultima attività: 04/07/2009 1.44.08nostromo Top Poster
il 7 dicembre 2007 alle 10.37
aggiungo a quato suggerito giustamente da efran.cobisi due link:

http://www.regular-expressions.info/reference.html

http://regexlib.com/Default.aspx

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
RE: Localizzazione e formattazione email in testo generico
ominide
ominide non è online. Ultima attività: 16/02/2009 17.30.18ominide
il 8 dicembre 2007 alle 00.05
69 messaggi dal 14 ottobre 2002
Si in effetti il discorso del replace poi me ne sono accorto  ... l'ho usato altre 6 volte in quella stessa pagina... errore di distrazione

per quanto riguarda le regular expression non ne conosco molto bene l'utilizzo in effetti e per ora le ho utilizzate solo nei comparefieldvalidator, per ora funziona come ho fatto, ma sicuramente è molto più pulito e "giusto" come consigliate voi.

grazie mille a entrambi, appena ho un attimino di tempo mi studio i link che mi avete postato!

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9