Форматирование чисел (десятичные знаки, разделители тысяч и т. д.) С помощью CSS



можно ли форматировать числа с помощью CSS?
То есть: десятичные знаки, десятичный разделитель, разделитель тысяч и т. д.

1190   9  

9 ответов:

Ну, для любых чисел в Javascript я использую следующий:

var a = "1222333444555666777888999";
a = a.replace(new RegExp("^(\d{" + (a.length%3?a.length%3:0) + "})(\d{3})", "g"), " ").replace(/(\d{3})+?/gi, " ").trim();

и если вам нужно использовать любой другой разделитель запятая, как например:

var sep = ",";
a = a.replace(/\s/g, sep);

или как функция:

function numberFormat(_number, _sep) {
    _number = typeof _number != "undefined" && _number > 0 ? _number : "";
    _number = _number.replace(new RegExp("^(\d{" + (_number.length%3? _number.length%3:0) + "})(\d{3})", "g"), " ").replace(/(\d{3})+?/gi, " ").trim();
    if(typeof _sep != "undefined" && _sep != " ") {
        _number = _number.replace(/\s/g, _sep);
    }
    return _number;
}

рабочая группа CSS опубликовала проект на Содержание Форматирование в 2008 году. Но сейчас ничего нового.

вероятно, лучший способ сделать это-комбинировать установку диапазона с классом, обозначающим ваше форматирование, а затем использовать Jquery .каждый, чтобы сделать форматирование на промежутках, когда загружается DOM...

нет, вы должны использовать javascript Как только он находится в DOM или форматирует его через серверную часть вашего языка (PHP/ruby/python и т. д.)

Не ответ, но, возможно, представляет интерес. Я действительно послал предложение для РГ CSS несколько лет назад. Однако, ничего не произошло. Если действительно они (и поставщики браузеров) увидят это как подлинную озабоченность разработчиков, возможно, мяч может начать катиться?

если это поможет...

я использую функцию PHP number_format() и узкое пространство без перерыва ( ). Он часто используется в качестве однозначного разделителя тысяч.

echo number_format(200000, 0, "", " ");

потому что IE8 имеет некоторые проблемы для визуализации узкого пространства без перерыва, я изменил его на промежуток

echo "<span class='number'>".number_format(200000, 0, "", "<span></span>")."</span>";
.number SPAN{
    padding: 0 1px; 
}

вы не можете использовать CSS для этого. Я рекомендую использовать JavaScript, если это применимо. Взгляните на это для получения дополнительной информации:JavaScript эквивалентен printf / string.формат

также, как упоминал Петр, Вы можете обрабатывать его на стороне сервера, но это полностью зависит от вашего сценария.

Я не думаю, что вы можете. Вы могли бы использовать number_format () Если вы кодируете на PHP. И другие языки программирования имеют функцию для форматирования чисел тоже.

вы можете использовать библиотеку тегов Jstl для форматирования страниц JSP

JSP Page
//import the jstl lib
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>

<c:set var="balance" value="120000.2309" />
<p>Formatted Number (1): <fmt:formatNumber value="${balance}" 
        type="currency"/></p>
<p>Formatted Number (2): <fmt:formatNumber type="number" 
        maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (3): <fmt:formatNumber type="number" 
        maxFractionDigits="3" value="${balance}" /></p>
<p>Formatted Number (4): <fmt:formatNumber type="number" 
        groupingUsed="false" value="${balance}" /></p>
<p>Formatted Number (5): <fmt:formatNumber type="percent" 
        maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (6): <fmt:formatNumber type="percent" 
        minFractionDigits="10" value="${balance}" /></p>
<p>Formatted Number (7): <fmt:formatNumber type="percent" 
        maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (8): <fmt:formatNumber type="number" 
        pattern="###.###E0" value="${balance}" /></p>

результат

Отформатированный Номер (1): £120,000.23

Форматированный Номер (2): 000.231

Отформатированное Число (3): 120,000.231

Форматированный Номер (4): 120000.231

Форматированное Число (5): 023%

Форматированный Номер (6): 12,000,023.0900000000%

Форматированное Число (7): 023%

Форматированный Номер (8): 120E3

Comments

    Ничего не найдено.