проверка пароля для верхних нижних номеров и символов

Я использую приведенный ниже скрипт для проверки моих паролей на длину, прописную букву, строчные буквы и цифры.

Как я могу изменить его, чтобы он менял символы FOR вместо символов?

<?php $password = 'afsd323A'; if( //I want to change this first line so that I am also checking for at least 1 symbol. ctype_alnum($password) // numbers & digits only && strlen($password)>6 // at least 7 chars && strlen($password)<21 // at most 20 chars && preg_match('`[AZ]`',$password) // at least one upper case && preg_match('`[az]`',$password) // at least one lower case && preg_match('`[0-9]`',$password) // at least one digit ) { echo 'valid'; } else { echo 'not valid';// not valid } ?> 

Solutions Collecting From Web of "проверка пароля для верхних нижних номеров и символов"

ваше нужное регулярное выражение ниже

  $pattern = ' ^.*(?=.{7,})(?=.*\d)(?=.*[az])(?=.*[AZ]).*$ '; preg_match($pattern,$password); 

DEMO

Тесты, если вход состоит из 6 или более символов ASCII. Вход должен содержать по крайней мере одну букву верхнего регистра, одну букву в нижнем регистре и одну цифру.

 if(preg_match('/\A(?=[\x20-\x7E]*?[AZ])(?=[\x20-\x7E]*?[az])(?=[\x20-\x7E]*?[0-9])[\x20-\x7E]{6,}\z/' $password)) echo("valid password"); 

Либо вы определяете список допустимых символов:

 preg_match('`[\$\*\.,+\-=@]`',$password) 

или вы можете искать все, что не является alnum:

 preg_match('`[^0-9a-zA-Z]`',$password)