Ask a Question related to PHP Development, Design and Development.

  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. Similar Questions and Discussions

    1. pcre libraries
      I'm new to mysql and was trying to compile the admin tool. The configure script complains about something called "pcre libraries". What is that? ...
    2. #26295 [Opn->Bgs]: Change from PCRE Library 3.9 to PCRE library 4.3 has resulted in broken code.
      ID: 26295 Updated by: sniper@php.net Reported By: mnbob70 at earthlink dot net -Status: Open +Status: ...
    3. #26295 [NEW]: Change from PCRE Library 3.9 to PCRE library 4.3 has resulted in broken code.
      From: mnbob70 at earthlink dot net Operating system: Linux lion.phpwebhosting.com 2.4 PHP version: 4.3.4 PHP Bug Type: PCRE...
    4. [PHP] PCRE regexp bug ?
      I believe I spoke too soon. If I use isset() then even if I leave the field empty it still returns true. I am trying to view the documentation for...
    5. [PHP-DEV] this causes a segfault cvs: php-src(PHP_4_3) /ext/pcre
      He added a decleration for pcre_* in the wrappers eg. #define pcre_xxxxx php_pcre_xxxx as apache2 uses pcre internally???? As far as I could...
  3. #2

    Default Re: [PHP] PCRE regexp bug ?

    ----- Original Message -----
    From: <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...
    >
    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

  4. #3

    Default Re: [PHP] PCRE regexp bug ?

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


    [email]tpc@csua.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

  5. #4

    Default Re: [PHP] PCRE regexp bug ?

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

    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

Posting Permissions

  • You may not post new threads
  • You may 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