ho provato il tuo codice e sembra che il modo in cui fai i controlli faccia invertire il risultato booleano degli oggetti regular expression. Che roba strana... (per le tue variabili e/o oggetti è meglio se eviti di usare nomi riservati come "length")
Io ti consiglio di usare una funzione di supporto per controllare il formato di user e upassword1 visto che è lo stesso
codice:
function ControllaFormato(str) {
var re, msg='';
re = /[A-Z]/g;
if (!re.test(str)) msg += 'inserire almeno una lettera maiuscola\n';
re = /[a-z]/g;
if (!re.test(str)) msg += 'inserire almeno una lettera minuscola\n';
re = /^.{8,12}$/g;
if (!re.test(str)) msg += 'la lunghezza deve essere tra 8 e 12 caratteri\n';
re = /^(\D*\d\D*){1,3}$/g;
if (!re.test(str)) msg += 'inserire da 1 a 3 caratteri numerici\n';
return msg;
}
da usare nella tua funzione di controllo così
codice:
//controllo user
var msg=ControllaFormato(document.register_form.user.value);
if (document.register_form.user.value == "") {
alert("Username Mancante - Campo obbligatorio!");
return;
}
else if(msg!=""){
alert(msg);
return;
}
//controllo la password
msg=ControllaFormato(document.register_form.upassword1.value);
if (document.register_form.upassword1.value == "") {
alert("Password Mancante - Campo obbligatorio!");
return;
}
else if(msg!="") {
alert(msg);
return;
}