Красивое отображение цены
Всем добрый день!
Передали на администрирование сайт, попросили чтобы красиво цены отображались, опыта js нету, поэтому тут и пишу вот код отвечающий за вывод цены e.displayPrice = function(e) { var t = Math.round(e); return t <= 999 ? t : t >= 1e3 && t <= 9999 ? t.toString().slice(0, 1) + " " + t.toString().slice(1) : t.toString().slice(0, 2) + " " + t.toString().slice(2) }, все красиво отображает, только если цена до 99 999, т.е. 5 654, 16 156 красиво отделяет сотые, но если цена больше 100 000, тогда отображается 12 4564, а надо 124 564, подскажите как сделать? |
А почему стандартная функция не подходит? https://developer.mozilla.org/en-US/...toLocaleString
Math.round(e).toLocaleString() // А можно даже Math.round(e).toLocaleString("ru-RU", {style: "currency", currency: "RUB"}) // Или Math.round(e).toLocaleString("ru-RU", {style: "currency", currency: "EUR"}) |
KonstBessonov, не все и все пока поддерживают.
monah1983, (price+'').replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ') |
а в return тогда все убрать?
должно получится e.displayPrice = function(e) { var t = Math.round(e).toLocaleString("ru-RU", {style: "currency", currency: "RUB"}); return[B] t <= 999 ? t : t >= 1e3 && t <= 9999 ? t.toString().slice(0, 1) + " " + t.toString().slice(1) : t.toString().slice(0, 2) + " " + t.toString().slice(2)[/B] что с этим делать? }, |
Написано же просто рег. выражение, чем не подходит?
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 15:47. |