gpt4 book ai didi

c# - DataAnnotation for Password 的正则表达式

转载 作者:行者123 更新时间:2023-11-30 15:03:58 25 4
gpt4 key购买 nike

我们需要确保密码符合特定的强度格式(这在 web.config 中配置)。要求是密码必须包含一定数量的大写字符和一定数量的非字母数字字符。我想用验证密码的正则表达式注释我的密码属性,以确保密码包含 x 个大写字母和 y 个非字母字符。请帮助正则表达式。

最佳答案

在单个正则表达式中检查多个这样的条件最好使用前瞻来完成,例如,假设您想要 3 个大写字符和 4 个非字母字符,您可以使用以下正则表达式:

^(?=(?:.*[A-Z]){3})(?=(?:.*[^a-zA-Z]){4})

说明:首先,让我们考虑一下只检查第一个条件的正则表达式是什么样的。要匹配 3 个大写字符,我们可以使用以下内容:

(?:.*[A-Z]){3}

我们仍然可以通过将其放在前瞻中来检查此条件,这就是 (?=...) 所做的,所以现在 (?=(?:.* [A-Z]){3}) 检查此条件而不消耗任何字符。此时,我们可以使用 (?:.*[^a-zA-Z]){4} 检查第二个条件。我也将第二个条件放在前瞻中,以便添加更多检查很简单。

请注意,当前正则表达式实际上不会匹配任何字符,如果所有条件都匹配,它将匹配字符串的开头(零个字符),否则匹配将失败。如果您希望它也实际使用字符,只需将 .* 添加到末尾即可。

关于c# - DataAnnotation for Password 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com