Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    4

    Sostituzione caratteri su stringa in modo Random

    Salve a tutti,

    avrei necessità di sostituire in maniera casuale (ma uniforme) x caratteri in una stringa di dimensioni variabili. Tipo il gioco dell'impiccato.

    Esempio:

    x='Lorem ipsum dolor sit amet, consectetur adipiscing'
    x='Lor_m _psu_ do_or s_t _me_, co_se_tetur a_ipi_cing'

    Ho scritto questo codice ma non funziona:

    codice:
    a='Lorem ipsum dolor sit amet, consectetur adipiscing'
    
    lunghezza = a.length; //Lunghezza stringa
    for (i=3; i<lunghezza; i +=5) { 
        
    f = a.substr(i,1);//carattere da sostituire
    a= a.replace(f,'_'); 
     
    }
    document.write (a);
    Grazie per l'aiuto
    Agraph

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, col tuo script mi pare che qualcosa stia succedendo. Perché dici che non funziona?

    Se vuoi qualcosa di veramente casuale puoi adoperare la funzione Math.random().
    Inoltre ci sono diversi metodi per sostituire singoli caratteri in una stringa. Tu hai usato replace ma in tal caso saranno sostituiti, di volta in volta, tutti i caratteri uguali a quello specificato.

    Ti posto un esempio in cui ho utilizzato split e join, così da trasformare la stringa in array per poter ciclare e sostituire i singoli caratteri:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <script type="text/javascript">
          function esegui(){
            var arrTesto = document.getElementById("testo").value.split(""); // creo un array del testo
            for (var i=0; i<arrTesto.length-1; i++) { // ciclo i caratteri
              i += Math.floor(Math.random()*5); // aggiungo un valore casuale all'indice (da 0 a 5)
              arrTesto[i] = "_"; // sostituisco il carattere all'indice ottenuto        
            }
            document.getElementById("risultato").innerHTML = arrTesto.join(""); // converto l'array in stringa e visualizzo il testo ottenuto
          }
      </script>
      </head>
      <body>
        <input id="testo" type="text" size=100 value="Lorem ipsum dolor sit amet, consectetur adipiscing">
        <br><input type="button" value="Esegui" onclick="esegui()">
        <hr><span id="risultato"></span>
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    4
    Grazie mille!!! E' PERFETTO!!!

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.