Нужно отформатировать число только k(thausand), а не m(миллион) или b(миллиард) цифр

Нам нужно только отформатировать число k(тысяча), а не m(миллион) или b(миллиард), при этом цифра js в настоящее время конвертирует все форматы

var number = 2000000; 
console.log(numeral(number).format('0a'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>

Ожидаемый результат id 2000K Спасибо

1 ответ

Я не очень знаком с цифрами, но я думаю, что вам, возможно, придется создавать собственный формат.

Демо-код

Пользовательский формат

numeral.register('format', 'thousands', {
regexps: {
    format: /(k)/,
    unformat: /(k)/
},
format: function(value, format, roundingFunction) {
    var space = numeral._.includes(format, ' k') ? ' ' : '',
        output;

    value = value*.001;

    format = format.replace(/\s?\k/, '');

    output = numeral._.numberToFormat(value, format, roundingFunction);

    if (numeral._.includes(output, ')')) {
        output = output.split('');

        output.splice(-1, 0, space + 'k');

        output = output.join('');
    } else {
        output = output + space + 'k';
    }

    return output;
}
});

Использовать формат

var number = 2000000; 
console.log(numeral(number).format('0k'));
Другие вопросы по тегам