nmbr

v1.3.0
Isomorphic JavaScript numbers parser and formatter
JavaScript js number format parse shortener short number

nmbr

Build Status npm npm npm Coverage Status

Isomorphic JavaScript numbers parser and formatter

Requirements

Installation

npm install nmbr --save
// Standard HTML import
<script src="node_modules/nmbr/lib/index.js"></script>
<script>
  var formatNumber = window.nmbr.formatNumber;
  ...
</script>
// JS module
import {formatNumber, parseNumber} from 'nmbr';

API

Formatter

Converts the number to a string by specified options.

formatNumber

This method takes 2 arguments:

  • number - any JS number
  • options:
{
    fractionSize?: number;
    roundSize?: number;
    minFractionSize?: number;
    separateThousands?: boolean;
    thousandDelimiter?: string;
    fractionDelimiter?: string;
    preset?: string;
}

Example:

import {formatNumber} from 'nmbr';

// '2.453,43'
const result = formatNumber(24534.343e-1, {
    fractionSize: 2,
    thousandDelimiter: '.',
    fractionDelimiter: ','
});

More cases you may find in my test cases

Formatting presets

You may define your own set of rules for formatting:

import {addFormattingPreset} from 'nmbr';

addFormattingPreset('myOwnPreset', {
    fractionSize: 1,
    thousandDelimiter: '.',
    fractionDelimiter: ','
});

// '120.009,1'
const result = formatNumber(120009.123456, {
    preset: 'myOwnPreset'
});

Parser

parseNumber

Parses a number from input string:

parseNumber('1,234', {thousandDelimiter: ','}); //  1234
parseNumber('1,234.56', {thousandDelimiter: ','}); // 1234.56
parseNumber('1.234,56', {thousandDelimiter: '.'}); // 1234.56
parseNumber('1.234.567', {thousandDelimiter: '.'}); // 1234567

You may omit delimiter options if you parse only fractional numbers:

import {parseNumber} from 'nmbr';

parseNumber('.02');      // 0.02
parseNumber('.1');       // 0.1
parseNumber(' 1 . 0');   // 1
parseNumber('-1 . 2');   // -1.2
parseNumber('--1 . 0');  // -1
parseNumber(' 1 , 1');   // 1.1
parseNumber('-1 , 2');   // -1.2
parseNumber('-1,12.78'); // -112.78
parseNumber('-1.13,79'); // -113.79

Shortener

shortNumber

Converts long numbers to short ones:

import {shortNumber} from 'nmbr';

shortNumber(5432); // 5.4k
shortNumber(1236903); // 1.2M
shortNumber(1236903, {
    template: "The size is [value]([unit]b)"
}); // The size is 1.2(Mb)

This method takes 2 arguments:

  • value - number or string: 2.13 or '2.13'
  • options:
{
    fractionSize?: number;
    template?: string;
    maxUnit?: NumberShortenerUnitName;
    minUnit?: NumberShortenerUnitName;        
}

// NumberShortenerUnitName = 'Y'|'Z'|'E'|'P'|'T'|'G'|'M'|'k'|'h'|'da'|'d'|'c'|'m'|'ยต'|'n'|'p'|'f'|'a'|'z'|'y'
npm i nmbr

Metadata

  • MIT
  • Whatever
  • webschik
  • released 9/10/2018

Downloads

Maintainers