Re: PCRE regexp bug ?
| From: | Curt Zirzow | Date: | Fri, 15 Aug 2003 16:23:18 +0000 |
| Subject: | Re: PCRE regexp bug ? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-159714@lists.php.net to get a copy of this message | ||
* Thus wrote tpc@csua.berkeley.edu (tpc@csua.berkeley.edu):
>
> I use preg_match to validate the Middle Initial field of a form and so far
> it works, except yesterday a user submitted a "0" (zero) as a middle
> initial! My regexp is:
>
> if (!empty($_POST[MI]) && (preg_match('/^[[:alpha:]]{1,1}$/', $_POST[MI]) ==
> 0))
>
> I tested it with 0-9 and my regexp catches every digit except 0. Curious...
actaually 0-9 will never match that regexp.
print preg_match('/^[[:alpha:]]{1,1}$/', '1');
yields: 0
The reason is that 0-9 is not alpha. You should use [[:alnum:]]
instead. Or better yet /^\w{1,1}$/
HTH,
Curt
--
"I used to think I was indecisive, but now I'm not so sure."