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>