Я бы использовал это регулярное выражение:
^(?!0\d)\d+\.\d{2}$
При этом вначале используется отрицательный прогноз для обработки требования о том, что значение валюты не может начинаться с нуля, если сразу же после этого следует другой di git. .
Демонстрация
Вот еще один способ сделать это:
^(?:0|[1-9]\d*)\.\d{2}$
Это говорит, чтобы соответствовать нулю, за ним не следует ничего после десятичной запятой или 1-9, если то, что следует, также является другим числом перед десятичной запятой.