Ciao a tutti,
usando questa combinazione di asserzioni e quantificatori, stavo cercando di scrivere una regexp che mi obbligasse una parola (password) a contenere almeno 1 lettera maiuscola,1 minuscola,1carattere speciale e 1 numero e fosse tra gli 8 e 20 caratteri.
tutto bene su circa 2000 tentativi, ma poi mi appare un true su una stringa che non dovrebbe passare e non ne capisco il perchè!
Codice PHP:
function a($pass){
return preg_match("/((?=.*[a-z])(?=.*[A-Z])(?=.*[\.\+\$@!_])(?=.*[0-9]).{8,20})/",$pass,$pw)
}
var_dump(a("347ri78.54124Ae")); #vera
var_dump(a("347ri78.,54124Ae")); #vera!!!!!!!!!!!!!!!!!!!!!
la virgola non è un carattere consetito, eppure mi dice che è vera!!!!