Я нашел отличный ответ здесь с объяснением, чтобы убедиться, что данная строка содержит хотя бы один символ из каждой из следующих категорий.
строчные буквы,
Прописная буква,
Digit,
Символ
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$
Краткое объяснение:
^
// начало строки
(?=.*[a-z])
// использовать положительный взгляд вперед, чтобы увидеть, существует ли хотя бы одна строчная буква
(?=.*[A-Z])
// использовать положительный взгляд вперед, чтобы увидеть, существует ли хотя бы одна заглавная буква
(?=.*\d)
// использовать положительный взгляд вперед, чтобы увидеть, существует ли хотя бы одна цифра
(?=.*[_\W])
// использовать положительный взгляд вперед, чтобы увидеть, существует ли хотя бы один символ подчеркивания или неслова
.+
// сожрать всю строку
$
// конец строки
Надеюсь, это поможет вам.