93 可读性
 将光标移到/点击文章中的句子上,可以查看译文。      显示繁体中文内容    显示简体中文内容

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

90 4

I would like to create a preg_match function to validate my passowrds, but i'm not sure how to write it to allow the following special characters to be used :!@#$%.

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

Here are my password rules that i want to work into the regex :

  • May contain letter and numbers
  • Must contain at least 1 number and 1 letter
  • May contain any of these characters :!@#$%
  • Must be 8 -12 characters

Thank you for any help you can offer.

时间:原作者:0个回答

98 2

I think this should look like that :

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

Between start -> ^
And end -> $
of the string there has to be at least one number -> (?=.*d)
and at least one letter -> (?=.*[A-Za-z])
and it has to be a number, a letter or one of the following :!@#$% -> [0-9A-Za-z!@#$%]
and there have to be 8 -12 characters -> {8,12}

As user557846 commented to your question, i would also suggest you to allow more characters, i usually (if i use a maximum) take at least 50 : )

btw, you might want to take a look at this regex tutorial

原作者:
...