Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

checking a password for upper lower numbers and symbols

Tags:

regex

php

I am using the below script to check my passwords for length, uppercase, lowercase and numbers.

How could I change it to make it check FOR symbols instead of against symbols?

<?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('`[A-Z]`',$password) // at least one upper case 
        && preg_match('`[a-z]`',$password) // at least one lower case 
        && preg_match('`[0-9]`',$password) // at least one digit 
        )
    { 
        echo 'valid';

    }
    else
    { 
        echo 'not valid';// not valid 
    }     
?> 
like image 402
ian Avatar asked Apr 07 '11 04:04

ian


1 Answers

your desired regex is below

   $pattern = ' ^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$ ';

   preg_match($pattern,$password);

DEMO

like image 93
diEcho Avatar answered Sep 28 '22 08:09

diEcho