Reputation: 21
I have problem with my price validation regular expression.
My pattern does not accept values that I want such as:
My pattern accepts values such as:
Right now, my pattern is ^([1-9]+\.)(\d{2})$
.
Desired regexp should not accept 'zero' values like e.g. 0.00
or 0
.
Upvotes: 0
Views: 726
Reputation: 19395
The expression /^(0\.(?!00)|(?!0)\d+\.)\d\d$/
satisfies all your requirements (so far). It seems easier to handle the cases 0.x and y.z as two alternatives.
Upvotes: 1
Reputation: 92735
Try
/^(?!0.00)(\d+\.)(\d\d)$/
[
'0','0.00',
'101.00','110.00','1000.00','0.50',
'1.00','1.10','1.11','11.11'
].map(x=>
console.log( x, /^(?!0.00)(\d+\.)(\d\d)$/.test(x) )
);
Upvotes: 2