Regex для политики паролей с функцией обрезки
Мне нужно создать регулярное выражение для политики паролей.
- Пароль должен содержать не менее 6 символов.
- Пароль должен содержать хотя бы одну строчную букву.
- Пароль должен содержать хотя бы одну заглавную букву.
- Пароль должен содержать хотя бы один специальный символ.
- Пробелы в середине пароля разрешены, но не в начале и в конце (=> функция обрезки).
Мой промежуточный результат это выражение:
^ (? =. * [AZ])(?=.* [Az])(?=.*\W).{6,}$
Это работает для первых четырех критериев, но не для функции обрезки.
Я попробовал что-то вроде линке:
(? = \ S [\ s] *) (? =. * [AZ])(?=.* [Az])(?=.*\W).{6,}$
но это не работает, потому что пробелы в конце все еще возможны.
Может ли кто-нибудь помочь мне расширить мой результат, чтобы регулярное выражение позволяло использовать пробелы в середине пароля, но не в начале и не в конце?