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

Regex 如何使用正则表达式验证密码?,regex,validation,asp-classic,Regex,Validation,Asp Classic,如何使用正则表达式验证密码中的字符?密码必须至少包含1个特殊字符、1个数字和1个字母。它的长度不应超过8个字符。必须使用正则表达式吗?这似乎是做这项工作的错误工具 相反,我将实现一个函数,用于检查您希望看到的每个字符中的一个,以及检查长度。与尝试执行相同操作的正则表达式相比,该函数更易于阅读。正则表达式: ^(?=.*\d)(?=.[a-zA-Z])(?=.[@$%^&+])。$ 将匹配 至少1位 至少1封信和 至少一个特殊字符 特殊字符是@'、'#'、'$'、'%'、'^'、'&'、'+'

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

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

相反,我将实现一个函数,用于检查您希望看到的每个字符中的一个,以及检查长度。与尝试执行相同操作的正则表达式相比,该函数更易于阅读。

正则表达式:

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

将匹配

  • 至少1位
  • 至少1封信和
  • 至少一个特殊字符
特殊字符是
@'、'#'、'$'、'%'、'^'、'&'、'+'
'='
,可以通过更改第三个前瞻组来更改允许的特殊字符


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

我相信您的意思是“不少于8个字符”;短于8个字符的密码的安全性通常接近于不存在。此外,理想的密码是不规则的。