Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regular expression to match integers up to 9 digits

I want to create a regular expression where only numbers are allowed with max length 9 and no minimum length. I came up with \d{9}[0-9] but it isn't working.

like image 626
t0mcat Avatar asked Jun 03 '11 16:06

t0mcat


2 Answers

You're close. Try this:

^\d{0,9}$

The ^ and $ match the beginning and the end of the text, respectively. \d{0,9} matches anywhere in the string, so d0000 would pass because it would match the 0000 even though there is a d in it, which I don't think you want. That's why they ^$ should be in there.

like image 75
vcsjones Avatar answered Sep 18 '22 00:09

vcsjones


Regular expressions can be tricky; what you've written does the following:

  • \d - digit
  • \d{9} - exactly 9 digits
  • \d{9}[0-9] - exactly 9 digits, followed by something between 0 and 9

If you want no minimum limit of length, but a maximum length of 9, you probably want the following regular expression:

  • \d{0,9} - 0 to 9 digits
like image 21
NT3RP Avatar answered Sep 20 '22 00:09

NT3RP