php - php为密码验证创建 preg_match,允许( @#$% ) !

  显示原文与译文双语对照的内容
90 4

我想创建一个 preg_match 函数来验证我的passowrds,但是我不确定如何编写以允许使用以下特殊字符:@#$% 。!

if(!preg_match(?????)$/', $password))

下面是我想在 正规表达式 中工作的密码规则:

  • 可能包含字母和数字
  • 必须至少包含 1个数字和 1字母
  • 可以包含以下任意字符:!@#$%
  • 必须是 8个字符

感谢你提供的任何帮助。

时间:原作者:0个回答

98 2

我认为应该是这样的:

if(!preg_match('/^(?=.*d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,12}$/', $password)) {
 echo 'the password does not meet the requirements!';
}

在开始-> ^ 之间
结束-> $
字符串中必须至少有一个数字-> (?=.*d)
至少一个字母-> (?=.*[A-Za-z])
它必须是数字,字母或者下列字母之一:@#$% -> [0-9A-Za-z@#$%]!
必须有 8个-12个字符-> {8,12}

就像user557846评论你的问题,我也建议你允许更多的字符,我通常是( 如果我使用最大值) 至少接受 50: )

你可以能需要看看这个 正规表达式 教程,

原作者:
...