В случае, если вы хотите принять так много разных форматов, немного сложно сделать это правильно.
Теперь мы можем просто использовать регулярное выражение для получения десятичной и полной частей значения:
/^([0-9,. ]+?)(?:[.,](\d{1,2})$|$)/
Регулярное выражение захватит полную часть числа + десятичную часть, разделенную символами a или a. и который имеет одно или два числа.
Группа захвата 1 будет содержать полную часть, а группа 2 - десятичную часть (если есть).
Чтобы получить свой номер, вам просто нужно отфильтровать все нечисловые символы из полной части и объединить отфильтрованные полную и десятичную части вместе.
Если вы хотите сделать его более надежным, вам, вероятно, следует реализовать что-то на стороне клиента, чтобы пользователь мог ввести значение в правильном формате.