Добавьте запятую к номерам каждые три цифры

Более общий способ сопоставления дефисов заключается в использовании символьного класса для дефиса и тире («\ p {Pd}» без кавычек). Если вы имеете дело с текстом из разных культур и источников, вы можете обнаружить, что существует больше типов делений, а не только один символ. Вы можете добавить, что внутри выражения []

146
задан Tiny Giant 27 January 2016 в 22:14
поделиться

5 ответов

@Пол Крейси имел простейшее решение в виде регекса, но вот он, как простой плагин jQuery:

$.fn.digits = function(){ 
    return this.each(function(){ 
        $(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") ); 
    })
}

Вы могли бы использовать его следующим образом:

$("span.numbers").digits();
228
ответ дан 23 November 2019 в 22:27
поделиться

Можно попробовать NumberFormatter.

$(this).format({format:"#,###.00", locale:"us"});

Он также поддерживает различные локали, включая, конечно, US.

Вот очень упрощенный пример его использования:

<html>
    <head>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="jquery.numberformatter.js"></script>
        <script>
        $(document).ready(function() {
            $(".numbers").each(function() {
                $(this).format({format:"#,###", locale:"us"});
            });
        });
        </script>
    </head>
    <body>
        <div class="numbers">1000</div>
        <div class="numbers">2000000</div>
    </body>
</html>

Вывод:

1,000
2,000,000
27
ответ дан 23 November 2019 в 22:27
поделиться

Что-то вроде этого, если вы увлекаетесь регексом, не знаете точного синтаксиса для замены tho!

MyNumberAsString.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
75
ответ дан 23 November 2019 в 22:27
поделиться

Это не jQuery, но он работает на меня. Взято с этого сайта .

function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
21
ответ дан 23 November 2019 в 22:27
поделиться

Вы также можете посмотреть на плагин jquery FormatCurrency (автором которого я являюсь); он также имеет поддержку нескольких локалей, но может иметь накладные расходы валютной поддержки, которые вам не нужны.

$(this).formatCurrency({ symbol: '', roundToDecimalPlace: 0 });
9
ответ дан 23 November 2019 в 22:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: