RegExp: формат валюты - PullRequest
1 голос
/ 22 мая 2009

Мне нужно отформатировать числа так, чтобы тысячи не были разделены ничем, а сотни - точкой. Например

1234,56 12,34 123

Я написал следующее ReqExp

amountValue.replace(/^(\d+)[,.](\d{3})[.,](\d{2})$/,'$1' + '$2' +'.'+'$3').replace(/^(\d+),(\d{2})$/,'$1' +'.'+'$2');

Если есть способ сделать его короче?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 мая 2009

Я бы просто удалил любой нечисловой символ, который не является десятичной точкой:

amountValue.replace(/[^0-9](?!\d{2}$)/, '').replace(/,(?=\d{2}$)/, '.');
1 голос
/ 22 мая 2009

Я думаю это может сработать:

amountValue.replace(/^(\d*)[,.]?(\d{0,3})[.,](\d{2})$/,'$1' + '$2' +'.'+'$3');

Попробуйте это против ваших данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...