Debugger
Debugger

Reputation: 21

How do I ignore 0 value for price validation using regular expressions?

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

Answers (2)

Armali
Armali

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

Kamil Kiełczewski
Kamil Kiełczewski

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

Related Questions