Sử dụng 8 ký tự trở lên với tổ hợp các chữ cái, số và ký hiệu là gì

Tôi muốn một biểu thức chính quy để kiểm tra xem:

Một mật khẩu có chứa ít nhất tám ký tự, trong đó có ít nhất một số và bao gồm cả chữ thường và chữ hoa và ký tự đặc biệt, ví dụ #, ?, !.

Nó không thể là mật khẩu cũ của bạn hoặc chứa tên người dùng của bạn "password", hoặc"websitename"

Và đây là biểu thức xác thực của tôi dành cho tám ký tự bao gồm một chữ cái viết hoa, một chữ cái viết thường và một số hoặc ký tự đặc biệt.

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

Làm thế nào tôi có thể viết nó cho một mật khẩu phải có tám ký tự bao gồm một chữ cái viết hoa, một ký tự đặc biệt và ký tự chữ và số ?