Create preg_match for password validation allowing (!@#$%)

后端 未结 9 954
耶瑟儿~
耶瑟儿~ 2020-12-04 23:14

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: <

9条回答
  •  北海茫月
    2020-12-04 23:31

    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

提交回复
热议问题