/ / jquery la convalida della password non funziona come previsto - jquery, regex, validation, password

validazione della password jquery non funziona come previsto: jquery, regex, convalida, password

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 № 1

Il 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,}$/

Demo RegEx

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.