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. | `------------------------------------------------------------' -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php