Вам нужно разделить ваше регулярное выражение так, чтобы оно принимало символы только в нужных местах. Например:
/^[+\-]?([0-9]+,)*[0-9]+(\.[0-9]+)?$/
Чтобы объяснить это выражение:
[+\-]?
: проверка префикса + или - к номеру. Это совершенно необязательно, но может быть только + или -.
([0-9]+,)*
: это позволяет дополнительный набор чисел, разделенных запятыми. Это для тысяч, миллионов и т. Д.
[0-9]+
: для этого необходимо, чтобы значение содержало хотя бы несколько чисел
(\.[0-9]+)?
: Наконец, это позволяет указывать опциональную десятичную точку с конечными числами.