如何使用正则表达式验证密码中的字符?密码必须至少包含1个特殊字符,1位数字和1个字母。它应该[不]超过8个字符。
答案 0 :(得分:6)
你必须使用正则表达式吗?这似乎是错误的工具。
相反,我会实现一个函数来检查你想要看到的每个字符,以及检查长度。该函数比试图做同样事情的正则表达式更容易阅读。
答案 1 :(得分:1)
正则表达式:
^(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).*$
将匹配
特殊字符为'@', '#', '$', '%', '^', '&', '+'
和'='
,可以通过更改第三个预见组来更改允许的特殊字符。
但是我无法使用正则表达式来匹配最大长度,这意味着Greg很可能是正确的,而正则表达式不适合这个。给定的正则表达式根据三个匹配的前瞻组强加最小密码长度3。您可以强制执行最小长度,正如Jonathan在评论中建议的那样,添加一个额外的预见组:(?=.{8.})
例如给出最小长度为8。