Visualizzazione dei risultati da 1 a 5 su 5

Discussione: replace di una stringa

  1. #1

    replace di una stringa

    salve, ho un problemino con il replace in JS.

    questo è il codice del JS:

    <script language="JavaScript" type="text/JavaScript">
    <!--
    function convHTML(testo) {
    testo = testo.replace('[+clrTxt]', '<font color="');
    testo = testo.replace('[-clrTxt]', '">');
    testo = testo.replace('[+b]', '');
    testo = testo.replace('[-b]', '
    ');
    testo = testo.replace('[+c]', '');
    testo = testo.replace('[-c]', '
    ');
    testo = testo.replace('[+u]', '<u>');
    testo = testo.replace('[-u]', '</u>');
    // testo = testo.replace('<', '&lt;');
    // testo = testo.replace('>', '&gt;');
    document.getElementById('preview').innerHTML = testo;
    }
    //-->
    </script>

    mi fa il replace solo una volta, in pratica se nella tringa compare la seguente frase:
    "[+b]testo1[-b] normalText [+b]testo2[-b]"

    quando faccio l'innerHTML mi da il grassetto al primo testo, mi chiude il tag, ma nel sencodo caso nn mi fa il replace con i tag, ma visualizza il testo così comè, è cioè:

    "testo1 normalText [+b]testo2[-b]"

    come risolvere????????????

    La funcione la richiamo così:
    <input type="text" name="mess" size="70" class="inputText" id="mess" onKeyPress="convHTML(this.value);" onKeyDown="convHTML(this.value);" onKeyUp="convHTML(this.value);" onChange="convHTML(this.value);">

    mentre il layer del'inneHTML è questo:

    <div id="preview"></div>


    per favore è urente


  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    311
    prova con questo
    codice:
    function convHTML(testo) { 
    var re=/\[\+b\]/g;
    var re2=/\[\-b\]/g;
    var re3=/\[\+clrTxt\]/g;
    var re4=/\[\-clrTxt\]/g;
    var re5=/\[\+c\]/g;
    var re6=/\[\-c\]/g;
    var re7=/\[\+u\]/g;
    var re8=/\[\-u\]/g;
    testo=testo.replace(re,"");
    testo=testo.replace(re2,"");
    testo=testo.replace(re3,"<font color=\"");
    testo=testo.replace(re4,"\">");
    testo=testo.replace(re5,"");
    testo=testo.replace(re6,"");
    testo=testo.replace(re7,"<u>");
    testo=testo.replace(re8,"</u>");
    document.getElementById('preview').innerHTML = testo; 
    }

  3. #3
    grazie ma mi potresti dire a ke servono quei simboli prima, all'interno e dopo la stringa da convertire???

    grazie ancora


  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    311
    quelle sono espressioni regolari, la funzione replace (ma anche altre) le utilizza per trovare il testo da sostituire

  5. #5

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.