Re: validating input

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12 Apr 2005 blackwater dev wrote:

> $good = "joh_'";
> 
> // Let's check the good e-mail
> if (preg_match("/[a-z0-9]/", $good)) {
>         echo "Good";
> } else {
>         echo "Bad";
> }
> 
> This returns Good, why?

That regex matches any string which contains at least one (lowercase) 
letter or one number somewhere within it.  To match for only those 
elements and no others you probably want:

	if (preg_match("/^[a-z0-9]*$/", $good)) {

which will match a string which contains nothing but a-z and 0-9, and 
will also match the empty string.  See 
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php and look 
at the meanings of ^, $, *, and +.

Other variations for the regex:

	/^[a-z0-9]+$/	as above but will not match empty string
	/^[a-z0-9]*$/i	as above but matches upper case as well
	/^[a-zA-Z0-9]*$/	like previous line -- as above but matches upper
					case as well

As Chris S. pointed out, a regex is not needed for this task, so the 
above is just academic.

--
Tom

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux