Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regex for number with decimals and thousand separator

Tags:

I need regex to validate a number that could contain thousand separators or decimals using javascript. Max value being 9,999,999.99 Min value 0.01 Other valid values: 11,111 11.1 1,111.11

INVALID values: 1111 1111,11 ,111 111,

I've searched all over with no joy.

like image 400
Swifty Avatar asked Apr 22 '13 13:04

Swifty


1 Answers

/^\d{1,3}(,\d{3})*(\.\d+)?$/

About the minimum and maximum values... Well, I wouldn't do it with a regex, but you can add lookaheads at the beginning:

/^(?!0+\.00)(?=.{1,9}(\.|$))\d{1,3}(,\d{3})*(\.\d+)?$/

Note: this allows 0,999.00, so you may want to change it to:

/^(?!0+\.00)(?=.{1,9}(\.|$))(?!0(?!\.))\d{1,3}(,\d{3})*(\.\d+)?$/

which would not allow a leading 0.

Edit:
Tests: http://jsfiddle.net/pKsYq/2/

like image 113
Loamhoof Avatar answered Dec 02 '22 00:12

Loamhoof