Эффективное форматирование в долларах США в Javascript - PullRequest
3 голосов
/ 03 мая 2010

Скажите, у меня есть строка: 33400298.57

Я написал функцию (слишком длинную, слишком раздутую, слишком нестандартную, чтобы публиковать здесь), которая форматирует это в:

33,400,298.57

Логика мяса - это вставка запятых - слева от десятичной дроби, каждые три знака. Может ли быть однострочное решение с использованием регулярных выражений для достижения этой цели? В настоящее время я делю, реверсирую, зацикливаюсь, чтобы вставить, реверс и снова соединяюсь. Излишне говорить, что это неоптимально.

Я ищу что-то вроде этого:

Генератор случайных цветов: '#' + Math.floor (Math.random () * 16777215) .toString (16);

Спасибо.

Ответы [ 3 ]

2 голосов
/ 03 мая 2010

Как насчет этого сексуального маленького числа с регулярным выражением:

s = "33400298.57";
s.replace(/(?!^)(\d\d\d)(?=(\d\d\d)*\.)/g, ',$1'); // 33,400,298.57
0 голосов
/ 03 мая 2010

Ну, есть число toLocaleString:

Number(12345.67).toLocaleString();

Это зависит от региона, поэтому будьте внимательны.

0 голосов
/ 03 мая 2010

Поскольку я использую jQuery поверх JavaScript, я бы использовал плагин jQuery. Примерно так:

http://code.google.com/p/jquery-formatcurrency/

Если вы используете другую библиотеку JavaScript, я бы вместо этого искал плагин для этой библиотеки. Я бы не стал писать свой собственный метод форматирования. Не изобретай велосипед.

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