• User Attivo

    Così va:

    
    <script>
    //Creo  array che conterrà le parole da censurare e di seguito lo riempio
    var bannazione = new Array();
    bannazione[0] = 'xke';
    bannazione[1] = 'xrò';
    bannazione[2] = 'azz';
    
    var sostituzione = new Array();
    sostituzione[0] = 'perchè';
    sostituzione[1] = 'però';
    sostituzione[2] = 'caspita';
    
    var censurate = "";
    var sostituisci = true;//Se a true, sostituisce, se a false, cancella
    
    //Inizializzo la funzione che contollerà ciò che gli viene passato
    function controllo_bannazione(testo)
    {
        censurate = "";
         //Ciclo per ogni elemento del'array, controllando se è presente nella stringa passata
        for(i=0;i<bannazione.length;i++)
        {
             //controllo se è presente ogni elemento
            if(testo.indexOf(bannazione*) != -1)
            {
                      if(sostituisci == true)
                      {
                          if(sostituzione*.length == 0)
                          {
                              asterischi = "*";
                              for(u=0;u<bannazione*.length-2;u++)
                              {
                                asterischi += asterischi;
                              }
                        }
                        else
                        {
                            asterischi = sostituzione*;
                        }
                    }
                    else
                    {
                        asterischi = "";
                    }
                  
                      censurate += bannazione*+"\r\n";
                  
                      testo = testo.replace(eval("/"+bannazione*+"/g"),asterischi);
            }
        }
        if(censurate != "")
        {
             //Esegui tutto ciò che ti serve qui dentro...
             //Ad esempio qui fa la lista delle parole trovate e stampa il testo con gli asterischi al posto delle parole...
             //Io manterrei gli asterischi per non rendere incomprensibile il testo
             //Qui sappi che hai 2 variabili in arrivo: testo e censurate, usale con sapienza ;-)
             alert("Le seguenti parole non sono ammesse:\r\n\r\n"+censurate);
             document.getElementById('testo_rec').value = testo;
             //alert(testo);
            
        }
        document.getElementById('moduloGuest').submit();
    }
    </script>
    
    <form name="moduloGuest" id="moduloGuest" method="post" action="">
    
    <table>
          
        <tr>
             <td><strong> Indica cortesemente il tuo nome </strong></td>
             <td><input type="text" name="nome_utente" id="nome_utente" size="30" maxlength="40" value=""></td>
         </tr>
    
    <tr>
             <td valign="top"><strong>Scrivi la tua opinione</strong></td><td><textarea name="testo_rec" id="testo_rec" cols="70" rows="17"></textarea></td>
    </tr>
        
    <tr>
             <td align="center" colspan="2"><input type="button" onClick="controllo_bannazione(document.getElementById('testo_rec').value)" value="Invia il messaggio!"></td>
     </tr>
    </table>
    </form>
    
    

  • User

    Ciao Daigor,
    ho fatto una prova, funziona tutto, sei stato gentilissimo.
    Mi puoi dare una tua ulteriore opinione? Ho visto che c'e' anche la funziona reg_exp, ma potrei inserirla all'interno delle tue istruzioni oppure no?serve?
    Grazie mille


  • User Attivo

    B'è, se il tuo problema sono semplici parole, non credo serva a tanto, ma se, ad esempio, vuoi controllare se l'indirizzo email è scritto bene, allora può essere utile!


  • User

    No no, il mio problema sono solo semplici parole, la mia domanda era semplice curiosità, ne ho approfittato solo perchè credo tu sia molto esperto in materia.
    Ho fatto una form come esempio per capire bene le tue istruzioni, e stasera applico le tue istruzioni alla form vera e propria e poi ti faccio sapere se è andato tutto bene.
    Ho notato una cosa, quando segnala che sono state sostituite delle parole, nel momento che do OK parte il submit e l'inserimento dei record va a buon fine. Secondo la tua esperienza, conviene fare cosi, o conviene che quando c'e' la segnalazione a video l'utente da l'OK, vede le parole modificate, magari con gli asterischi, dando la possibilità di cambiare le parole?
    Grazie mille


  • User Attivo

    B'è, credo che sia meglio lasciargli vedere il testo asteriscato o modificato, poi quando non c'è niente da correggere, inviare!


  • User

    Ok grazie,
    ti faccio sapere quando ho configurato il tutto.
    Buona serata


  • User

    Daigor, ho inserito le tue istruzioni nella mia form originale, funziona tutto perfettamente, grazie mille di cuore.
    😉


  • User Attivo

    Benissimo!!!
    Alla prossima! 😉


  • User

    Ciao daigor,
    ho notato un problema. Prima di inserire tutte le tue istruzioni, nella form avevo un'altro controllo in javascript che veniva attivato tramite questa istruzione:

    <form name="moduloGuest" id="moduloGuest" onSubmit="return controllo();" ETC ETC

    infatti funzionava perchè alla fine della form avevo:

    <input type="submit" ETC ETC

    Ora, cambiando quest'ultima istruzione con:

    <input type="button"

    non ho più l'aggancio corretto, come posso fare?
    grazie


  • User

    Daigor in pratica avevo altre istruzioni javascript che mi andavano a fare un controllo sui vari campi per vedere se erano compilati, ti riporto un esempio:

    <script language="JavaScript">
    function controllo(){
    with(document.moduloGuest) {
    if(nome_utente.value=="") {
    alert("Inserisci cortesemente il tuo nome.");
    nome_utente.className="bred";
    nome_utente.focus();
    return false;
    }
    }
    return true;
    }
    </script>

    Dove in class bred nel file CSS c'e':
    .bred{
    background-color:#FF0000;
    }

    Come posso fare per far convivere tutte e due le istruzioni di javascript?
    Grazie