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

    regexp per validazione password

    ciao a tutti,
    sto cercando di creare una regexp (per la "prima" volta) per validare una password che ha come condizione:

    7 caratteri solo lettere (maisciole o minuscole) e numeri, minimo 4 lettere e 3 numeri.

    ho fatto questo

    pattern = /^[a-zA-Z{4,}+0-9{3,}]{7}/;

    pensavo fosse leggibile come: tutti i caratteri a-z o A-Z minimo 4 e tutti i caratteri 0-9 minimo 3, lunghezza minima totale 7..

    l'unica cosa che invece mi valida è la lunghezza minima..
    mi accetta anche 7 lettere o 7 caratteri e se la password immessa è maggiore/uguale a 7 caratteri, accetta tutto ($ ad esempio, o il punto)..

    dove sbaglio?

  2. #2
    essendo le espressioni regolari un po' ostiche ti aggevolo un link
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    prova cosi:

    /^(?=(.*[0-9]){3,})(?=(.*[A-Za-z]){4,})[A-Za-z0-9]{7,}$/

  4. #4
    vi ringrazio per le risposte

    la risorsa linkata non la conoscevo ed è MOLTO utile, grazie.. lo script invece più tardi lo provo e ti faccio sapere, o cmque ho un punto di partenza un po più articolato.

    grazie di nuovo

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    codice:
    <script type="text/javascript" language="javascript">
    //un esempio usando un'unica RE (quella di Vindav)
    function PasswordValida(strPassword) {
    	var re = /^(?=(.*\d){3,})(?=(.*[a-z]){4,})[a-z\d]{7,}$/i
    	return re.test(strPassword);
    }
    //e una con 3 RE che dice cosa c'è che non va
    function ValiditaPassword(strPassword) {
    	var msg = '';
    	//carattere diverso da lettere e numeri (lettere minuscole e maiuscole)
    	var reNumeriLettere = /[^a-z\d]/i;
    	//caratteri dalla a alla z in tutta la stringa (minuscole e/o maiuscole)
    	var reLettere = /[a-z]/gi;
    	//caratteri numerici in tutta la stringa
    	var reNumeri = /\d/g;
    	var numeroLettere = (strPassword.match(reLettere) ? strPassword.match(reLettere).length : 0);
    	if (numeroLettere < 4) msg += '- bisogna inserire almento 4 caratteri alfaberici
    \n';
    	var numeroNumeri = (strPassword.match(reNumeri) ? strPassword.match(reNumeri).length : 0);
    	if (numeroNumeri < 3) msg += '- bisogna inserire almento 3 caratteri numerici
    \n';
    	if (reNumeriLettere.test(strPassword)) msg += '- sono presenti caratteri non consentiti
    \n';
    		return msg
    	}
    </script>
    
    <form>
    	Password<input type="text" type="password" name="password" />
    
    	<input type="button" value="test semplice" onclick="document.getElementById('divMsg').innerHTML=(PasswordValida(this.form.password.value) ? 'valida' : 'non valida');" />
    	<input type="button" value="test con spiegazioni" onclick="msg=ValiditaPassword(this.form.password.value);document.getElementById('divMsg').innerHTML=(msg=='' ? 'valida' : msg);" />
    	<div id="divMsg"></div>
    </form>

  6. #6
    la funzione di willybit è veramente molto completa .. grazie 1000!!!! adattata alle mie esigenze è perfetta..

    giusto per imparare, potresti spiegarmi questa cosa:

    (strUser.match(reLettere) ? strUser.match(reLettere).length : 0)

    significa: strUser corrisponde a reLettere .. è poi?

    grazie 1000 a tutti davvero..

  7. #7
    (strUser.match(reLettere) ? strUser.match(reLettere).length : 0)
    SE strUser.match(reLettere) ? VERO : FALSO
    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    questo
    codice:
    numeroLettere = (strUser.match(reLettere) ? strUser.match(reLettere).length : 0);
    equivale a
    codice:
    if(strUser.match(reLettere)){
      numeroLettere=strUser.match(reLettere).length;
    }
    else{
      numeroLettere=0;
    }

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.