|  | Posted by Richard Lynch on 06/15/89 11:15 
On Wed, May 4, 2005 3:51 am, pete M said:> not a php expert but have filed this bug report re validating
 > is_numeric('3e0');
 > http://bugs.php.net/bug.php?id=32943
 >
 > Now tried
 >
 >    function isnumeric($n) {
 >     if (ereg("^[0-9]{1,50}.?[0-9]{0,50}$", $n)) {
 >       return true;
 >     } else {
 >       return false;
 >     }
 >    }
 >
 > and that doent seem to work either..
 >
 > any ideas.. need to validate anything without 0-9 and a dot within
 
 .. is a special character in Regex, so your .? is going to match: "any
 single character, or nothing"
 
 You need \. for the Regular Expression, only you need \\ in PHP to get \
 
 Plus $ would be interpreted as the start of variable inside of "" in PHP,
 so to be really clear, I'd escape that as well:
 
 "^[0-9]{1,50}\\.?[0-9]{0,50}\$"
 
 The 50-character limit seems rather arbitrary and silly, actually...
 
 Perhaps just a + and * instead of the {1,50} and {0,50} as well.
 
 You've also completely missed all the negative numbers, by the way.
 
 Maybe you want to read through the User Contributed notes at
 http://php.net/ereg and http://php.net/pcre and find a solution that more
 closely matches the real world.
 
 For that matter, Euler notation is quite common, and maybe it's really
 best if you just use the built-in function, and accept that the 'e'
 notation is valid.
 
 YMMV
 
 --
 Like Music?
 http://l-i-e.com/artists.htm
  Navigation: [Reply to this message] |