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

时间:2018-02-06 03:45:46

标签: c# regex asp.net-core asp.net-identity

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

ASP.NET Core启用默认的密码验证

  1. 最少8个字符
  2. 应至少有一个数字
  3. 至少应有一个大写
  4. 应至少有一个小写
  5. 应该至少有一个特殊字符(允许哪些特殊字符?)
  6. 记住这些条件我尝试制作以下正则表达式但它不起作用。

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

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

    我在这里做错了什么?

1 个答案:

答案 0 :(得分:14)

所以,使用

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

了解更多信息:this