Добрый день. К сожалению, регулярки не самая сильная моя сторона, поэтому надеюсь на вашу помощь.
Мне нужно составить регулярку, которая позволяет:
- писать числа (в input)
- использовать в качестве разделителя десятичной дроби точку либо запятую. Т.е. что-то одно, и только один раз
- автоматически расставляет пробелы для отделения разрядности чисел (1 000, 10 000 000)
- т.е. из предыдущего пункта вытекает, что пробелы разрешены, но запрещено ставить два и более пробелов подряд
- после запятой (или точки) должно быть невозможно ввести более двух символов
- Ну и, соответственно, все другие символы, кроме точек, запятых, пробелов и чисел - запрещены.
Собственными силами удалось нагуглить и досочинять что-то вот такое, но оно не делает всего, что нужно:
str.replace(/[^.,\d]+/g,'').replace(/^([^\.]*\.)|\./g, '$1').replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ')
Буду очень признателен за помощь.