tôi cần phải regex phù hợp với một trường mật khẩu sử dụng javascript với các yêu cầu sau:Regex phù hợp với một mật khẩu mạnh với hai hoặc nhiều ký tự đặc biệt
- Ít nhất 15 ký tự
- hai hoặc chữ thường hơn chữ !
- hai hay nhiều chữ hoa chữ
- hai hoặc nhiều chữ số
- hai hoặc nhiều hơn các ký tự đặc biệt sau đây: @ # $%^* & -
Tôi có một regex mà sẽ chăm sóc các trường hợp MOST:
/^.*(?=.{15,})(?=.{2,}\d)(?=.{2,}[a-z])(?=.{2,}[A-Z])(?=.{2,}[\!\@\#\$\%\^\&\*\-]).*$/
Vấn đề ở đây là với những biểu tượng, nó hoạt động với:
[email protected]@ssw0rd [email protected]@ [email protected]@Pssw0rd
Nhưng không:
@@Pssw0rdPssw0rd
Tôi có trình tạo mật khẩu ngẫu nhiên được thiết lập để kiểm tra đầy đủ điều này, vì vậy mọi ý tưởng đều được đánh giá cao. Cảm ơn!
Tôi nghĩ rằng đây không thể được thực hiện với một * * regex. –
@Salman: tại sao không? Bao giờ nghe nói về lookaheads? –
Tôi khuyên bạn không nên làm điều này. Bảo mật mật khẩu bắt buộc là một trong những lý do chính khiến người dùng tạo "password1" hoặc "PAssword! @ 12345" trong trường hợp của bạn. – yorick