Gli esempi da me fatti si riducono al fatto che solo se li digiti consecutivamente gli speciali da alert, altrimenti scrivendoli tra un carattere e l’altro vengono accettati, ovviamente solo i tre @&#.
Quindi, non ho capito, deve o non deve essere accettata la presenza di più caratteri speciali quando non sono consecutivi?
Ribadisco, quando si tratta di espressioni regolari è sempre meglio documentare con quanti più esempi possibile per poter definire in maniera precisa il pattern.
Tra l'altro, considera che lo spazio (il carattere \s) secondo il tuo pattern iniziale, può essere presente più volte:
Esemplificando, questo:
codice:
^(?!.*[#@&].*[#@&])(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9#@&\s]{8,12}$
.
produce questo:
codice:
Fi 3 valido
Xy1 valido
Filo# 4556 valido
FFFFaaa111 valido
aA 1a a3 b4@ valido
@123 45 ab C valido
F 3 non valido, richiesta almeno una lettera minuscola [a-z]
Filo#@45 non valido, è presente più di un carattere speciale [#@&]
Filo123 non valido, richiesti almeno 8 caratteri
Abc#12 @ZZ non valido, è presente più di un carattere speciale [#@&]
@xyz Tip Tap non valido, richiesto almeno un numero [0-9]
@xyz Tip-123 non valido, presenti caratteri non ammessi