如何使用正则表达式验证密码?

时间:2009-09-30 06:32:06

标签: regex validation asp-classic

如何使用正则表达式验证密码中的字符?密码必须至少包含1个特殊字符,1位数字和1个字母。它应该[不]超过8个字符。

2 个答案:

答案 0 :(得分:6)

你必须使用正则表达式吗?这似乎是错误的工具。

相反,我会实现一个函数来检查你想要看到的每个字符,以及检查长度。该函数比试图做同样事情的正则表达式更容易阅读。

答案 1 :(得分:1)

正则表达式:

^(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).*$

将匹配

  • 至少1位,
  • 至少1个字母和
  • 至少一个特殊字符

特殊字符为'@', '#', '$', '%', '^', '&', '+''=',可以通过更改第三个预见组来更改允许的特殊字符。

但是我无法使用正则表达式来匹配最大长度,这意味着Greg很可能是正确的,而正则表达式不适合这个。给定的正则表达式根据三个匹配的前瞻组强加最小密码长度3。您可以强制执行最小长度,正如Jonathan在评论中建议的那样,添加一个额外的预见组:(?=.{8.})例如给出最小长度为8。