tags:

views:

61

answers:

4

I need a validation regex for decimal. It should allow upto 5 digits after decimal.

Allow:
1    
1.0    
12.0    
12.01    
123.01    
1,123.01    
1,123.013
21,123.01234    
3,21,123.01234

How Can I do regex for this?

+3  A: 

http://regexlib.com/Search.aspx?k=decimal

Andrey
+1  A: 
^[\d,]+(\.\d{1,5})?$
Yuriy Faktorovich
But `,` would pass.
BipedalShark
@BipedalSharkYou're right, I am still confused about the use of the coma in general because of the test cases.
Yuriy Faktorovich
+1  A: 

There an excellent library of commonly used regular expressions at http://regexlib.com/.

You an use a standard expression like: ^\$[0-9]+(\.[0-9][0-9])?$ or one of the alternative versions that do much the same thing, depending on the exact flavor you want to match.

LBushkin
+1  A: 

Do you want to validate the positions of the commas? If so, this works for the Indian numbering system that you seem to be using:

^(?:\d{1,2},(?:\d{2},)*\d{3}|\d{1,3})(\.\d{1,5})?$

If you want to permit commas in the integer portion but don't care about their positions (except that it can't start or end with a comma), this will do:

^\d+(?:,\d+)*(\.\d{1,5})?$
Alan Moore