密码正则表达式问题

Password Regex Issue

我需要一个正则表达式来验证用户通过 JS 在在线注册表中输入的密码。密码条件如下:

  1. 必须超过 8 个字符
  2. 必须包含至少 1 个数字、1 个小写字母和 1 个大写字母
  3. 不能包含花括号{}
  4. 必须允许任何其他特殊字符(如 @、#、$、%、_、" 等)
  5. 数字、小写字母和大写字母的顺序可以是随机的,例如可以是Ab1394*"或*"bA1394

我尝试使用以下正则表达式,但是如果您输入任何特殊字符,例如“?”在花括号 { 之前,它将允许它作为有效输入。我刚开始使用正则表达式,并不是很熟悉,所以其中可能有一些小问题:

^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[,#?!=@%&\^$\*\)\(\_\.\'\"\+\-]).{8,}$

有人可以为此提供正则表达式或指出我的任何问题吗?谢谢

要轻松禁止字符,请将 .{8,} 更改为 [^{}]{8,}:

^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*[,#?!=@%&\^$\*\)\(\_\.\'\"\+\-])[^{}]{8,}$

或在 class 中包含任何授权字符:

[a-zA-Z\d,#?!=@%&\^$\*\)\(\_\.\'\"\+\-]{8,}