Alex Rivera | Logout

How can I validate the range 1-99 using a regex?

Asked 2010-10-25T08:40:34.520
23

I need to validate some user input, to ensure a number entered is in the range of 1-99 inclusive. These must be whole (Integer) values

Preceeding 0 is permitted, but optional

Valid values

  1. 1
  2. 01
  3. 10
  4. 99
  5. 09

Invalid values

  1. 0
  2. 007
  3. 100
  4. 10.5
  5. 010

So far I have the following regex that I've worked out : ^0?([1-9][0-9])$

This allows an optional 0 at the beginning, but isn't 100% correct as 1 is not deemed as valid

Any improvements/suggestions?

Edit
Report

2 Answers

16

Here you go:

^(\d?[1-9]|[1-9]0)$

Meaning that you allow either of

  1. 1 to 9 or 01 to 09, 11 to 19, 21 to 29, ..., 91 to 99
  2. 10, 20, ..., 90
answered 2010-10-25T08:43:21.917
-6
String d = "11"

if (d.length() <= 2 && d.length() >=1) {
    try {
        Integer i = Integer.valueOf(d);
        return i <= 99 && i >= 0
    }
    catch (NumberFormatException e) {
        return false;
    }
}
answered 2010-10-25T09:03:13.763

Your Answer