MICHELEPISANI.IT
 

Generare una stringa random di caratteri alfanumerici

Generare una stringa random

Javascript - Generare una stringa random
Giugno 09
07:052014
Realizzare una funzione in Javascript per la generazione di una stringa random è piuttosto semplice. Il principio su cui si basa può essere quello di recuperare casualmente, tramite la funzione Math.random(), un carattere da una stringa prestabilita tante volte quante deve essere lunga la stringa che vogliamo generare.
 

<script type="text/javascript">
  function generateRandomString(iLen) {
    var sRnd = '';
    var sChrs = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
    for (var i = 0; i < iLen; i++) {
      var randomPoz = Math.floor(Math.random() * sChrs.length);
      sRnd += sChrs.substring(randomPoz, randomPoz + 1);
    }
    return sRnd;
  }
</script>


Analizzando velocemente il codice della funzione generateRandomString si può notare che necessita di un parametro in ingresso, iLen, che deve essere un valore numerico intero e rappresenta la lunghezza della stringa random che la funzione restituirà.
La stringa costante dalla quale vengono prelevati i caratteri in modo casuale in base alle loro posizioni è rappresentata dalla variabile sChrs. Nell'esempio in questione contiene caratteri alfanumerici minuscoli e maiuscoli ma on è escluso che possa contenere anche simboli e caratteri speciali.
 
Come utilizzare la funzione:


<script type="text/javascript">
  var stringa_random = generateRandomString(8);
  alert(stringa_random);
</script>


Guarda lo script in azione:




 
Suggerimenti per l'uso: L'utilizzo di una stringa random può essere utile in molte situazioni durante la stesura di codice e prende particolare importanza nelle chiamate AJAX in quanto, passata come parametro, consente di evitare il problema del catching dei risultati nei browser come in alcune versioni di Internet Explorer. Questo problema si verifica quando si chiama più volte una pagina AJAX passando gli stessi parametri; il browser riconoscendo che la situazione della chiamata alla pagina è la stessa di una già effettuata in precedenza ripropone lo stesso risultato presente nella cache senza ricaricare la pagina stessa o rieseguire il codice all'interno. Questa situazione può essere utile in determinate situazioni come ad esempio una normale navigazione di un utente tra le pagine di un sito web evitando così inutili caricamenti di contenuti statici già effettuati in precedenza... ma cosa può succedere se la pagina chiamata serve ad esempio per inserire un prodotto nel carrello? Può succedere che dopo aver cliccato sull'apposito bottone ed aggiunto il prodotto nel carrello la prima volta, nel caso in cui si tentasse  di aggiungere un'altra volta al carrello lo stesso prodotto nella stessa quantità l'operazione non andrebbe a buon fine e non succederebbe niente... e come si può immaginare questo può compromettere le vendite.
Quello che succede è esattamente quello che è stato descritto poco sopra, ovvero il browser riceve una chiamata AJAX alla pagina con le funzioni per aggiungere i prodotti al carrello, ad esempio codice prodotto '123-45' e quantità '1', la seconda volta ritrovandosi sempre gli stessi paramteri di codice prodotto e quantità non esegue la pagina ma utilizza la cache, pertanto se come parametro oltre al codice prodotto e la quantità passassimo anche una variabile contenente la nostra stringa random il browser interpreterebbe le chiamate alla pagina in questione sempre come se fosse la prima volta che si esegue tale pagina in virtù della presenza della stringa random che cambia ad ogni esecuzione del codice.
Tags
Condividi

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Grazie Paolo,
spero possa tornarti utile per i tuoi scopi.

Paolo

salve,mi interessa il progetto sensore gas ,per applicazioni in agricoltura.Vedremo gli …

Michele Pisani

Ciao Rossana,
strano problema, una domanda: continui a visualizzare entrambe le pagine o una …

Rossana

Ciao Michele, il mio problema è che Facebook non mi risponde. Mi è successo tre volte: faccio …