Próbuję utworzyć dopasowanie do wyrażenia regularnego (dla haseł), gdzie ciąg musi zawierać od 8 do 30 znaków, musi mieć co najmniej 2 cyfry, co najmniej 2 litery (bez rozróżniania wielkości znaków), co najmniej 1 znak specjalny i brak spacji.Regex, aby dopasować co najmniej 2 cyfry, 2 litery w dowolnej kolejności w ciągu znaków
Mam działające spacje i znaki specjalne, ale otrzymuję 2 cyfry i 2 litery, ponieważ nie muszą być kolejne.
tj. Powinien pasować do a1b2c$
lub ab12$
lub 1aab2c$
.
Coś takiego do listów?
(?=.*[a-zA-Z].*[a-zA-Z]) // Not sure.
Ciąg poniżej działa, ale tylko wtedy, gdy są rzędu 2 litery i cyfry 2 są consecutive..it zawiedzie jeśli litery, cyfry, znaki specjalne przeplatają.
(?=^.{8,30}$)((?=.*\\d)(?=.*[A-Za-z]{2})(?=.*[0-9]{2})(?=.*[[email protected]#$%^&*?]{1})(?!.*[\\s]))^.*
Jesteś absolutnie pewien, trzeba regexp do tego? – Scorpil
Chciałbym argumentować przeciwko regex i po prostu mieć indywidualne kontrole dla każdego z instrukcjami if i pewnego rodzaju funkcji string.contains(). gparyani dało rozwiązanie, które wydaje się być o wiele ładniejsze niż regex – user1751547
Wygląda na to, że potrzebuję regex, ponieważ jest to część konfiguracji Liferay. – user2166893