用于密码验证的正则表达式
Posted
技术标签:
【中文标题】用于密码验证的正则表达式【英文标题】:Regex for password verification 【发布时间】:2011-07-10 03:27:31 【问题描述】:我要验证密码。以下是我的要求。
最小密码长度:8 小写字符的最小数量:1 最小大写字符数:1 最小数字字符数:1
如何为此编写正则表达式?
【问题讨论】:
我的建议是改用函数 ValidatePassword。您可能需要对此进行更新以包括(例如)密码不能包含用户名。只是一个想法。 :) Regex 不是这项工作的最佳工具。 @Jacob:当一个人使用一些只允许正则表达式进行验证的框架时,通常会出现这样的请求。 【参考方案1】:您可以使用以下正则表达式:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).8,$
【讨论】:
我认为某些常见的客户端语言不支持?=
(零宽度正向预测),但经过一番研究,我很高兴看到我错了.这是要使用的正则表达式。【参考方案2】:
我同意@Russell,函数是密码验证的更好选择。很难想象一个单一的正则表达式可以处理所有这些情况。我认为您必须依次检查每一项。
单独来说,正则表达式是:
.8
至少匹配 8 个字符
[a-z]
匹配单个小写字符
[A-Z]
匹配单个大写字符
[0-9]
匹配一个数字
话虽如此,这些仅在让服务器进行深入验证之前对客户端检查有用。
【讨论】:
【参考方案3】:请在下面的正则表达式中找到您的要求:
(?=^.8$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
【讨论】:
以上是关于用于密码验证的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章