Используйте это: ^\d+(?:\.\d+)*(?:,\d+)?$
Это гарантирует, что может быть не более одной запятой, и что такой запятой должна предшествовать хотя бы одна цифра, а за ней должна быть хотя бы одна цифра, однакозапятая не обязательна.
Она также гарантирует, что перед запятой (если она присутствует) возникают любые периоды, и нет запаздывающих или последовательных запятых.
Допустимые значения:
10.000.100,00
10.000.100
100
Неверные значения:
10,000,100.00
10.000.100,0.0
10.000.100,
10.000.
.10.000
10..100
См. regex101.com для демонстрации.