sto avendo il seguente codice di convalida:
function validPassword(password)
{
var regex = /^(?=.*[A-Za-z])(?=.*d)(?=.*[$@$!%*#-?&])[A-Za-zd$@$!%*#-?&]{8,}$/;
var valid = regex.test(password);
return valid;
}
i requisiti sono: lunghezza minima 8 caratteri, 1 carattere speciale, 1 carattere alfabetico, 1 numero minimo.
non ho familiarità con regex, tuttavia, la convalida non funziona 12345678a
- per qualche motivo il rilevamento di un personaggio speciale non funziona .. qualche idea? Grazie
risposte:
1 per risposta № 1Il problema è la presenza di trattino senza caratteri di escape nel mezzo della classe di caratteri che funge da intervallo tra il carattere precedente e quello successivo.
Puoi usare questo regex per risolverlo:
/^(?=.*[A-Za-z])(?=.*d)(?=.*[$@$!%*#?&-])[A-Za-zd$@$!%*#?&-]{8,}$/
Nota come viene posizionato il trattino alla fine della classe di personaggi in lookahead e nella partita ora.
È inoltre possibile posizionare un trattino senza caratteri di escape all'inizio.