- Найти ^ ([0-9,] *?) (?:,? 0 +)? $
- Группа 1 - результат.
Объяснение :
^
Соответствует началу строки. ([0-9,]*?)
Группа захвата 1: минимальное совпадение цифр и запятых до следующих значений. (?:,0+)?
При желании укажите необязательную запятую, за которой следует один или несколько нулей. Это обрабатывает случай, когда строка не имеет конечных нулей и ничего не нужно «заменять». $
Соответствует концу строки.
См. Regex демо
регулярное выражение заменит все конечные нули. Если строка, состоящая из 000
, например, Группа 1, будет пустой строкой. Если вы действительно хотите оставить хотя бы один ноль, используйте:
^([0-9,]+?)(?:,?0+)?$
let tests = [
'123,450',
'123,40500',
'123,000',
'123',
'000'
]
for (let test of tests) {
test = test.match(/^([0-9,]+?)(?:,?0+)?$/)[1];
console.log(test);
}