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

    eliminare spazi in una stringa

    Come faccio a far cercare alla funzione cerca_occorrenze uno "spazio" in una variabile??????????

    function cerca_occorrenze(variabile) {
    var stringa=variabile;
    if (stringa.search(/\</g)>=1 || stringa.search(/\>/g)>=1) && stringa.search(/\" "/g)>=1 {
    stringa=stringa.replace(/\" "/g," ");
    stringa=stringa.replace(/\</g,"<");
    stringa=stringa.replace(/\>/g,">");
    return(stringa);
    }
    }

    In pratica il mio obiettivo è quello di restituire la variabile con il valore "&#32" al posto degli spazi (" ").

    DOMANDA: Se non sbaglio questa funzione mi sostituisce solo UNA volta le occorrenze trovate...se io volessi far ciclare la sostituzione fino a quando all'interno della stringa TUTTE le occorrenze sono state sostituite...come dovrei fare?




  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    pippo = " sono stato tranquillo per anni .";
    alert(pippo.replace(/\s/g,"&#32"));
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In realta` dovrebbe sostituirle tutte, ma il loop esterno non serve: lo fa gia` la RegExp con la opzione /g.

    Prova a vedere:
    codice:
    function cerca_occorrenze(vv) {
      vv = vv.replace(/\ /g,"& nbsp;"); // togli lo spazio dopo il &
      vv = vv.replace(/\</g,"& lt;");
      vv = vv.replace(/\>/g,"& gt;");
    
      return(vv);
    }
    Attenzione che avevi:
    - il return all'interno del loop
    - una RegExp errata per lo spazio (cercava una stringa contenente virgolette, spazio, carattere_non_intrpretabile)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4

    non funziona!

    ragazzi non funziona, o meglio funzionano le due sostituzioni del minore maggiore ma appena inserisco la riga di codice relativa alla sostituzione degli "spazi" mi va in errore la funzione e non mi sostituisce più niente!


  5. #5

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ma cosa vuoi sostituire ? Non ho ben capito il tuo problema.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Originariamente inviato da badaze
    Ma cosa vuoi sostituire ? Non ho ben capito il tuo problema.
    Il problema tu l'hai capito benissimo! Infatti ho provato le tue righe di codice nella mia funzione e il tutto funzionacorrettamente. Ma appena sostituisco pippo con la mia variabile (pippo=variabile) che passo correttamente alla funzione, mi si blocca tutto!

    Riporto qui il mio codice:

    Qui richiamo la funzione
    <?
    echo "<script language=\"javascript\">sostituisci_caratteri(\" ".$variabile." \")</script>";
    ?>

    Funzione
    <script type="text/JavaScript">

    function sostituisci_caratteri(valore) {

    var stringa=valore;
    if (stringa.search(/\</g)>=1 || stringa.search(/\>/g)>=1 || stringa.search(/\/g,"&#32;")>=1 ) {
    stringa=stringa.replace(/\ /g,"&#32;");
    stringa=stringa.replace(/\</g,"&#60;");
    stringa=stringa.replace(/\>/g,"&#62;");
    alert("I caratteri apice, doppio apice e space sono stati rimossi");
    }
    return(stringa);
    }

    </SCRIPT>


  8. #8
    Originariamente inviato da Mich_
    In realta` dovrebbe sostituirle tutte, ma il loop esterno non serve: lo fa gia` la RegExp con la opzione /g.

    Prova a vedere:
    codice:
    function cerca_occorrenze(vv) {
      vv = vv.replace(/\ /g,"& nbsp;"); // togli lo spazio dopo il &
      vv = vv.replace(/\</g,"& lt;");
      vv = vv.replace(/\>/g,"& gt;");
    
      return(vv);
    }
    Attenzione che avevi:
    - il return all'interno del loop
    - una RegExp errata per lo spazio (cercava una stringa contenente virgolette, spazio, carattere_non_intrpretabile)
    Scusa Mich...ma esiste da qualche parte una tabella di conversione di questi caratteri speciali???


  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Il primo carattere di una stringa è 0 e non 1. Quindi search(pippo) >= 1 non prende in conto il primo carattere ma il secondo.

    Prova cosi

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script type="text/JavaScript"> 
    
    function sostituisci_caratteri(valore) { 
    
     var stringa=valore; 
     //
     if (stringa.search(/\</g)>=0 || stringa.search(/\>/g)>=0 || stringa.search(/\s/g)>=0 ) { 
      stringa=stringa.replace(/\s/g,"&#32;"); 
      stringa=stringa.replace(/\</g,"&lt;"); 
      stringa=stringa.replace(/\>/g,"&gt;"); 
      alert("I caratteri apice, doppio apice e space sono stati rimossi"); 
     } 
     return(stringa); 
    } 
    alert(sostituisci_caratteri(" sono stato tranquillo per anni ."));
    
    document.write(sostituisci_caratteri(" sono stato tranquillo per anni ."));
    //-->
    </script>
    
    
    </head>
    <body>
    
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da xalfryx
    Scusa Mich...ma esiste da qualche parte una tabella di conversione di questi caratteri speciali???
    Che tabella?
    Intendi una lista delle entita`? http://www.w3schools.com/tags/ref_entities.asp

    O intendi una funzione che trasforma i caratteri speciali in caratteri che passano dalla rete? Vedi il manuale JS per escape() e unescape()
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.