web-dev-qa-db-fra.com

Expression régulière Javascript pour le format monétaire

J'ai cette expression régulière /^\d(\d|\,\d{3}|,\d.+$)*$/ 

Avec mes exemples de données:

100.00 - Not working :(
1,000.00 - Working
100,000.00 - Working
1,000,000.00 - Working

Note: Je dois donner une erreur si le résultat est 0.00  

Des idées ou des suggestions? Merci.

11
Rajnikanth

Vous pourriez peut-être utiliser:

^(?!0\.00)\d{1,3}(,\d{3})*(\.\d\d)?$

Voyez comment ça marche ici .

De plus, si vous souhaitez interdire les zéros non significatifs, la regex serait:

^(?!0\.00)[1-9]\d{0,2}(,\d{3})*(\.\d\d)?$
14
Jerry

Une version symbolique

^([^\d\s]{1,}\s?[+-]?)(\d{1,3})(\,\d{3})*(\.\d{1,})?$

Vérifierai

  • 100 - NON
  • 1,000.00 - NON
  • & -100,000.00 - OUI
  • ¥ -1,000,000.00 - OUI
  • 1 000 € - OUI
  • € 100 000,00,7 - NON
  • 0,00 $ - OUI
  • R $ 1,000.00 - OUI
0
Doglas

Vous pouvez utiliser:

^\$?(?!0.00)(([0-9]{1,3},([0-9]{3},)*)[0-9]{3}|[0-9]{1,3})(\.[0-9]{2})?$

Il va vérifier

100.00 - oui

1,000.00 - oui

100,000.00 - oui

1 000 000,00 - oui

0,00 - non

0
tanmaya biswal