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.
In the above statement.. what possible password thus exist?.
I've done this with my drupal custom form in
hook_form_validate
here the password should be 6 characters of letters, numbers and at least one special character.I have developed a complete regex for a bit more complex check
Basically I check for the password to have 1 digit, 1 capital, 1 lower and 1 special character. I hope this helps someone looking for a regex.
I think this should look like that:
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
I liked r3bel's answer, so I had a play with it and ended up with the following as a password-checking function:
Max/Min lengths are default or adjustable, each requirement is default on, but can be switched off, and I wanted to support any symbols so the last requirement is "anything that isn't one of the above types", rather than a fixed set of symbols.