Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    33

    replace su tutta la stringa

    Ciao a tutti, ho un problema con la funzione replace.
    Ho scritto questo codice:
    codice:
    contenuto = contenuto.replace(/(<font )(color)(=)(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(>)(.*)(<\/font\>)/gi,"<span style=\"$2:$4;\">$9</span>");
    Ma il replace viene eseguito solo sul primo elemento che viene trovato non su tutti, sapete come devo risolvere?

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    bisognerebbe vedere il contenuto della variabile "contenuto"
    guardando la tua RegExp sembra che tu voglia trovare i tag <font> con la proprietà color è trasformarli in tag <span> con il colore nello style.
    Così però prende dal primo tag font aperto fino all'utimo chiuso. Devi fermarti al primo.
    codice:
    contenuto = 'adesso metto il tag font: <font color=#AA0000>primo font rosso</font>, secondo font <font color=#00AA00>verde</font> e basta';
    document.write(contenuto+'
    ');
    //questa è la tua
    //contenuto = contenuto.replace(/(<font )(color)(=)(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(> )(.*)(<\/font\> )/gi,"<span style=\"$2:$4;\">$9</span>");
    //qua ho aggiunto *? per fermarsi prima del primo </font>
    contenuto = contenuto.replace(/(<font )(color)(=)(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(>)(.*?)(<\/font\>)/gi,"<span style=\"$2:$4;\">$9</span>");
    document.write(contenuto+'
    ');
    //fallo scrivere in una textarea per vedere il risultato
    document.write('<textarea style="width:100%;height:25px;">'+contenuto+'</textarea>
    ');
    questo però non trova roba come
    codice:
    <font color="#AA00BB">prova</font>
    <font color='#AA00BB'>prova</font>
    <font color=yellow>prova</font>
    <font face="verdana" color=#AA00BB>prova</font>
    <font color=#AA00BB>prima riga
    
    seconda riga</font>
    insomma dipende cosa serve a te

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.