正则表达式默认ASP.NET核心标识密码

注意 :我相信这个问题不是这个问题的重复。 我的问题是处理asp.net核心身份用于密码validation的默认validation规则以及如何制作正则表达式,而链接的问题正在讨论,一般是关于validation密码的行为(这不能解决我的问题)

ASP.NET Core启用默认的密码validation

  1. 最少8个字符
  2. 至少应该有一个号码
  3. 至少应该有一个大写字母
  4. 至少应该有一个小写字母
  5. 应该至少有一个特殊字符(允许哪些特殊字符?)

记住这些条件我尝试制作以下正则表达式,但它不起作用。

^((?=.*?[AZ])(?=.*?[az])(?=.*?[0-9])|(?=.*?[AZ])(?=.*?[az])(?=.*?[^a-zA-Z0-9])|(?=.*?[AZ])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9])|(?=.*?[az])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9])).{8,}$ 

即使当点2,3,4,5中的三个条件中的任何一个匹配时,该正则表达式也接受字符串。 但我希望所有条件都应该满足。

我在这做错了什么?

所以,使用

 ^(?=.*[az])(?=.*[AZ])(?=.*\d)(?=.*[#$^+=!*()@%&]).{8,}$ 
  • ^ :第一行
  • (?=。* [az]):至少应有一个小写字母
  • (?=。* [AZ]):应该至少有一个大写字母
  • (?=。* \ d):至少应有一个数字
  • (?=。 [#$ ^ + =! ()@%&]):至少应该有一个特殊字符
  • 。{8,}:最少8个字符
  • $:结束行

有关更多信息: 这