我想要一个正则表达式来检查
a password must be eight characters including one uppercase letter, one special character and alphanumeric characters.
这是我的验证表达式,它是八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
密码必须是八个字符,包括一个大写字母,一个特殊字符和字母数字字符,我怎么写?
最佳答案
您所追求的正则表达式很可能会非常庞大,维护起来简直就是一场噩梦,尤其是对于那些不太熟悉正则表达式的人来说。
我认为分解正则表达式并一次只做一点会更容易。可能需要做更多的事情,但我很确定维护它和调试它会更容易。这还允许您向用户提供更多定向错误消息(不仅仅是 Invalid Password
),这应该会改善用户体验。
据我所知,您对正则表达式相当流利,因此我认为为您提供正则表达式来执行您需要的操作是徒劳的。
看到你的评论,我会这样做:
必须是八个字符长:您不需要为此使用正则表达式。使用
.Length
属性应该就足够了。包括一个大写字母:您可以使用
[A-Z]+
正则表达式。如果字符串至少包含一个大写字母,则此正则表达式将产生true
。一个特殊字符:您可以使用
\W
来匹配任何不是字母或数字的字符,或者,您可以使用像这样的东西[ !@#]
指定特殊字符的自定义列表。请注意,虽然$
、^
、(
和)
等字符是正则表达式语言中的特殊字符,所以他们需要像这样转义:\$
。所以简而言之,您可以使用\W
。字母数字字符:使用
\w+
应该匹配任何字母和数字以及下划线。
看看this教程以获取更多信息。
关于c# - 用于检查密码是否为 "8 characters including 1 uppercase letter, 1 special character, alphanumeric characters"的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477906/