RE: [PHP] OT - Regular Expression

From: Date: Fri, 09 Feb 2007 19:19:49 +0000
Subject: RE: [PHP] OT - Regular Expression
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-248679@lists.php.net to get a copy of this message
On Fri, 2007-02-09 at 15:16 +0000, Edward Kay wrote: > > > As Rob suggested, why not just use two checks? e.g. > > > > > > if ( (strlen($input) == 4) && (strpos($input, '8') !== FALSE ) ) { > > > // OK > > > } else { > > > // Not OK > > > } > > > > > > Not only is this logic much easier to understand than a regexp > > - important > > > when someone else has to maintain your code later on etc., I > > also believe it > > > will be faster than using preg_match. > > > > Those would be the wrong two checks, you'd need 3 checks to do it that > > way, I still suggested using a regex. The reason being that the original > > requirements need the entire input to be digits :) > > > > <?php > > > > if( ereg( '^[[:digit:]]{4}$', $input ) > > && > > strpos( $input, '8' ) ) > > { > > // woot! > > } > > > > // Or alternatively... > > > > if( strlen( $input ) == 4 > > && > > strpos( $input, '8' ) > > && > > ctype_digit( $input ) ) > > { > > // woot! > > } > > > > ?> > > > > Cheers, > > Rob. > > Oops - good catch! > > You still need the !== FALSE Doh! I should have caught that :) Cheers, Rob. -- .------------------------------------------------------------. | InterJinn Application Framework - http://www.interjinn.com | :------------------------------------------------------------: | An application and templating framework for PHP. Boasting | | a powerful, scalable system for accessing system services | | such as forms, properties, sessions, and caches. InterJinn | | also provides an extremely flexible architecture for | | creating re-usable components quickly and easily. | `------------------------------------------------------------'

« previous php.general (#248679) next »