Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Editor testi: sostituzione stringa

    Sto scrivendo un semplice editor di testi per permettere all'utente di creare facilmente articoli in formato html in stile simil-BBCODE attraverso l'uso di una textarea
    questa è il codice che uso adesso e funziona perfettamente (l'utente per inserire una immagine scrive[*]numeroImmagine[/*] )
    articolo è la stringa che contiene tutto il contenuto della textarea che deve poi essere formattata.


    articolo = replace(articolo, "[*]","<IMG src='thumb.aspx?width=200&articolo=" & objRs2("ID") & "&immagine=")
    articolo = replace(articolo, "[/*]", "'></IMG>")

    Il mio problema nasce dal fatto che io vorrei che vorrei applicare anche un link all'immagine, basato però sul suo numero...mi spiego, il risultato, inserendo[*]1[/*] dovrebbe essere questo

    <A HREF="1.jpg">[img]thumb.aspx?width=200&articolo=44&immagine=1[/img]</IMG>

    Qualche idea/suggerimento su una possibile realizzazione?

    Grazie!

  2. #2
    Devi usare le espressioni regolari.. è un argomento delicato e soprattutto complesso ma ti permette di avere controllo assoluto sulle stringhe:

    codice:
    articolo = Regex.Replace(articolo, @"\[\*\](?<immagine>\d+)\[/\*\]", "<a href=\"$+\"><IMG src='thumb.aspx?width=200&articolo=" + objRs2["ID"] + "\"></a>");
    (mi spiace ma io uso C#..)

    Il Replace del classe Regex ti permette di indicare 3 parametri: stringa di origine, pattern, e stringa di sostituzione.
    Nel mio caso ho passato prima articolo (che contiene tutta la stringa da controllare), poi ho indicato cosa deve cercare all'interno dell'articolo:

    \[\*\](?<immagine>\d+)\[/\*\]

    (?<immagine>\d+) = permette di utilizzare il numero indicato tra i tag[*] e [/*]

    La stringa di sostituzione è:

    <a href=\"$+\"><IMG src='thumb.aspx?width=200&articolo=" + objRs2["ID"] + "\"></a>

    Dove $+ restituisce l'ultimo gruppo di caratteri catturato (nel nostro caso l'unico con nome "immagine" e che restituisce il numero scritto dall'utente tra i 2 tag).


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.