Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    17

    [REGEXP]Validazione Password

    Salve a tutti,
    Ho bisogno di validare la password inserita dall'utente in fase di registrazione in modo che siano rispettate le seguenti regole:
    1) almeno 8 caratteri,
    2) almeno un numero
    3) almeno una lettera
    4) almeno un simbolo tra questi . ; $ ! @ -
    5) non più di due caratteri consecutivi uguali

    Dato che non ci sono riuscito con le espressioni regolari alla fine l'ho fatto a mano con dei controlli consecutivi tramite substr e simili.
    Volevo sapere se era possibile farlo con le espressioni regolari?

    Grazie in anticipo.

    Etrix

  2. #2
    Il controllo della lunghezza devi farlo con strlen(string), per il resto il pattern che ti serve è questo:
    codice:
    [a-zA-Z]+[0-9]+(\.|;|\$|!|@|-)
    Siccome i riconoscimento dei pattern delle RegExp in linea di massima è uguale in tutti i linguaggi (deriva dal Perl), ti consiglio questo utile tool (in JavaScript) per verificare al volo il pattern che cerchi:

    http://www.regular-expressions.info/...ptexample.html

    Metti nel primo campo quel pattern che ho scritto, nel secondo la stringa da testare e verifica che funzioni.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    17
    Grazie per il tuo aiuto però non è proprio quello che mi serve dato che non accetterebbe una password del tipo:

    a1$$1Z2a
    oppure
    1$ciao$1

  4. #4
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Come no?
    Puoi controllare nel link che ti ha indicato emanueledg, funziona anche con quelle stringhe che hai indicato tu.
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  5. #5
    Oops... Intendi la ricorsività dei caratteri, cioè non vuoi che un carattere sia usato più di una volta?
    Quello non saprei come farlo con le RegExp, anche se immagino che un sistema ci sia.

    (Se qualcuno di buona volontà non dovesse passare per questo thread ci sono varie guide ben fatte sulle RegExp e l'uso di preg_match e funzioni correlate).
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    17
    Scusa ho sbagliato il primo esempio in quanto c'erano consecutivamente una lettera, un numero e un carattere speciale e questo validava la stringa, i successivi 5 caratteri divengono praticamente superflui ai fini del match.
    Prova con questo

    1a$$1Z2a

    e comunque il secondo esempio non funziona.

  7. #7
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Hai ragione ho provato 2 volte la stessa stringa :P
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  8. #8
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Prova questa, ma è infinita :P
    (E tra l'altro accetta stringhe con più di 2 caratteri consetutivi uguali)
    codice:
    ([a-zA-Z]+[0-9]+(\.|;|\$|!|@|-))|([a-zA-Z]+(\.|;|\$|!|@|-)[0-9]+)|([0-9]+[a-zA-Z]+(\.|;|\$|!|@|-))|([0-9]+(\.|;|\$|!|@|-)[a-zA-Z]+)|((\.|;|\$|!|@|-)[0-9]+[a-zA-Z]+)|((\.|;|\$|!|@|-)[a-zA-Z]+[0-9]+)
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    17
    Ok grazie funziona.
    Avevo pensato di aver bisogno di scrivere tutte le combinazioni possibili ma non lo avevo provato.
    Per le ripetizione penso di fare un controllo carattere per carattere.

    Comunque grazie ancora.

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.