Professional Web Applications Themes

PCRE regexp bug ? - PHP Development

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......

  1. #1

    Default PCRE regexp bug ?


    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...

    tpc@csua.berkeley.edu Guest

  2. #2

    Default Re: [PHP] PCRE regexp bug ?

    ----- Original Message -----
    From: <tpccsua.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...
    >
    Maybe it thinks it's the letter O, have you tried using a font that puts a
    line through the zero;-)

    [sorry couldn't resist]

    Cheers, Greg.


    Greg Wiley Guest

  3. #3

    Default Re: [PHP] PCRE regexp bug ?

    Not an answer but
    '/^[[:alpha:]]{1,1}$/'
    could be writen as
    '/^[[:alpha:]]$/'


    [email]tpccsua.berkeley.edu[/email] wrote:
    > 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...
    >
    >
    Marek Kilimajer Guest

  4. #4

    Default Re: [PHP] PCRE regexp bug ?

    From: <tpccsua.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...

    empty("0") is going to be true. So, !empty("0") is going to be false, so you
    won't "catch" the zero.

    ---John Holmes...

    Cpt John W. Holmes Guest

Similar Threads

  1. pcre libraries
    By Wayne Happ in forum MySQL
    Replies: 1
    Last Post: November 13th, 05:11 AM
  2. Replies: 0
    Last Post: November 18th, 10:11 AM
  3. Replies: 0
    Last Post: November 18th, 05:58 AM
  4. [PHP] PCRE regexp bug ?
    By tpc@csua.berkeley.edu in forum PHP Development
    Replies: 1
    Last Post: August 15th, 08:49 PM
  5. [PHP-DEV] this causes a segfault cvs: php-src(PHP_4_3) /ext/pcre
    By Alan Knowles in forum PHP Development
    Replies: 0
    Last Post: August 3rd, 10:58 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139