regular expression help

I'm trying to make a regular expression to validate that a number entered is in a range from  99.99 to -99.99 where the decimal is optional but then would only take the last two digits.

examples of good values would be : -3.4 , 33 , .92 , etc...
LVL 1
Who is Participating?

x

Commented:
-?([0-9]{1,2}(\.[0-9]{,2})?)|([0-9]{,2}\.[0-9]{1,2})
0

Commented:
Hmmmm....

Optionally negative:
-?

Any sequence of digits (possibly none)
[0-9]*

Followed by a chunk of stuff to deal with the decimal place:
(

If we're gonna have a decimal component there must be a decimal point:
\.

Followed by exactly two digits
[0-9][0-9]

And that concludes the decimal part, but let's make it optional:
)?

The finished product:

-?[0-9]*(\.[0-9][0-9])?
0

Commented:
Having said that, in most languages there'll already be a function to determine if a string contains a numeric value, and another to round properly to two digits.  Perhaps that combination would work better for what you're doing?
0

Commented:
-?[1-9]?[0-9](\.[0-9][0-9])?
0

Commented:
-?[1-9]?[0-9]?(\.[0-9]?[0-9]?)?
0

Commented:
Yeah, I completely missed the range requirement.  Still, the second half of mish33's expression seems unnecessary?  I don't know what class of numbers that's restricting.

-?[0-9]{1,2}(\.[0-9]{,2})?

should be sufficient.
0

Commented:
ha, what about .99?
0

Commented:
Heh, yeah, {0,2} would make more sense on that first one, huh.
0

Commented:
whats the language that you are using?

can you uses abs() then you dont have to worry about negatives. ..
simply do an if then and check if the value > 0 and < 100...

also... if this is for some form or report, you can check the properties on displaying the variable, 2:2... or something like that indicates number of digits and number of decimals...

additionally, lots of languages have round or truncate functions.  you can define the length of digits using either function, but it obviously depends on what you are trying to display.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.