Professional Web Applications Themes

Regular expression problem - PHP Development

I have build a regular expression function to validate a value: The value of 43% is not allowed to pass (because of the % sign which is not allowed) but in my function it validates as OK. Strange thing is that the value 3,45% validates well and is found NOT OK Why does 43% pass the test??? Can someone find the error in my regular expression? Here is the code: ##### <?php function validateCommreg($val) { if(ereg("^(0|[1-9][0-9]{0,2})((.|,)[0-9]{0,2})$",$val)) { echo "OK ($val)<hr />"; } else { echo "NOT OK ($val)<hr />"; } } validateCommreg('77'); validateCommreg("43%"); validateCommreg('3,45%'); validateCommreg('3,4'); validateCommreg('12,03-'); validateCommreg('0,7'); validateCommreg('0,00'); ?> #####...

  1. #1

    Default Regular expression problem

    I have build a regular expression function to validate a value:

    The value of 43% is not allowed to pass (because of the % sign which is not
    allowed) but in my function it validates as OK.

    Strange thing is that the value 3,45% validates well and is found NOT OK

    Why does 43% pass the test???

    Can someone find the error in my regular expression? Here is the code:

    #####
    <?php

    function validateCommreg($val) {

    if(ereg("^(0|[1-9][0-9]{0,2})((.|,)[0-9]{0,2})$",$val)) {

    echo "OK ($val)<hr />";

    } else {

    echo "NOT OK ($val)<hr />";

    }
    }


    validateCommreg('77');

    validateCommreg("43%");

    validateCommreg('3,45%');

    validateCommreg('3,4');

    validateCommreg('12,03-');

    validateCommreg('0,7');

    validateCommreg('0,00');

    ?>
    #####


    Marcel Guest

  2. #2

    Default Re: Regular expression problem

    "Marcel" wrote:
     

    The "%" character matches with the "." in your regular expression.

    ^(0|[1-9][0-9]{0,2})((.|,)[0-9]{0,2})$
    ^

    Try "\." instead.

    --
    phil [dot] ronan virgin [dot] net
    http://vzone.virgin.net/phil.ronan/


    Philip Guest

  3. #3

    Default Re: Regular expression problem


    "Philip Ronan" <invalid> schreef in bericht
    news:BEC49157.3252C%invalid... 
    >
    > The "%" character matches with the "." in your regular expression.
    >
    > ^(0|[1-9][0-9]{0,2})((.|,)[0-9]{0,2})$
    > ^
    >
    > Try "\." instead.
    >[/ref]

    Thanks Phil,

    Finally ^(0|[1-9][0-9]{0,2})((\\.|,){0,1}[0-9]{0,2})$ did the job. I forgot
    that the . has special meaning....thanks for your help..... if forgot to put
    {0,1} after (\\.|,) to make values like 57 pass as well

    Marcel



    Marcel Guest

Similar Threads

  1. regular expression problem ? and * characters
    By compboy in forum PERL Modules
    Replies: 3
    Last Post: May 30th, 02:15 AM
  2. Regular Expression Problem
    By Kenneth Baltrinic in forum PERL Miscellaneous
    Replies: 5
    Last Post: October 17th, 04:23 PM
  3. Problem with regular expression
    By jonwrob in forum Macromedia ColdFusion
    Replies: 1
    Last Post: March 28th, 03:06 AM
  4. php regular expression problem
    By rob :: digitalburn in forum Macromedia Dynamic HTML
    Replies: 1
    Last Post: May 5th, 11:38 PM
  5. Replies: 2
    Last Post: August 24th, 02:47 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