我想要一个正则表达式来检查
密码必须是八个字符,包括一个大写字母,一个特殊字符和字母数字字符。
这是我的验证表达式,它包含八个字符,包括一个大写字母,一个小写字母和一个数字或特殊字符。
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
如何为必须包含八个大写字母(一个大写字母,一个特殊字符和字母数字字符)的密码编写密码?
您所追求的正则表达式很可能非常庞大且难以维护,尤其是对于不那么熟悉正则表达式的人。
我认为分解您的正则表达式并一次执行一次会更容易。可能还需要做更多的工作,但是我敢肯定,维护和调试它会更容易。这还将使您能够向用户(不仅仅是Invalid Password)提供更多定向错误消息,这将改善用户体验。
Invalid Password
从我所看到的来看,您在regex方面相当流利,所以我认为为您提供正则表达式来做您需要的事情是徒劳的。
看到您的评论,这就是我的处理方式:
必须为八个字符长:为此,您不需要正则表达式。使用该.Length属性应该足够了。
.Length
包括一个大写字母:您可以使用[A-Z]+正则表达式。如果字符串包含至少一个大写字母,则此正则表达式将产生true。
[A-Z]+
true
一个特殊字符:可以使用\W匹配任何非字母或数字的字符,也可以使用诸如此类的东西[!@#]来指定特殊字符的自定义列表。不过,请注意字符如$,^,(和)是在正则表达式语言的特殊字符,所以需要进行转义像这样:\$。简而言之,您可以使用\W。
\W
[!@#]
$
^
(
)
\$
字母数字字符:使用\w+时应匹配任何字母,数字和下划线。
\w+
查看本教程以获取更多信息。