string-remove-thousand-separators5.0.6
Detects and removes thousand separators (dot/comma/quote/space) from string-type digits
Β§ Quick Take
import { strict as assert } from "assert";
import { remSep } from "string-remove-thousand-separators";
// π¬π§ πΊπΈ thousand separators:
assert.equal(remSep("1,000,000.00"), "1000000.00");
// π·πΊ thousand separators:
assert.equal(remSep("1 000 000,00"), "1000000,00");
// (if you want it converted to Western notation with dot,
// set opts.forceUKStyle = true
// π¨π thousand separators:
assert.equal(remSep("1'000'000.00"), "1000000.00");
// IT'S SMART TOO:
// will not delete if the thousand separators are mixed:
const input = "100,000,000.000";
assert.equal(remSep(input), input);
// ^ does nothing
// but will remove empty space, even if there is no decimal separator:
// (that's to cope with Russian notation integers that use thousand separators)
assert.equal(
remSep("100 000 000 000"),
"100000000000"
);
// while removing thousand separators, it will also pad the digits to two decimal places
// (optional, on by default, to turn it off set opts.padSingleDecimalPlaceNumbers to `false`):
assert.equal(remSep("100,000.2"), "100000.20");
console.log();
// ^ Western notation
assert.equal(remSep("100 000,2"), "100000,20");
// ^ Russian notation
assert.equal(remSep("100'000.2"), "100000.20");
// ^ Swiss notation
Β§ API
remSep(str, [opts])
If first argument (input) is not string
, it will throw
and error. Second input argument, opts
, is optional. However, if it is present and is not null
, not undefined
and not a plain object, it will throw
and error.
Β§ options
Defaults:
{
removeThousandSeparatorsFromNumbers: true,
padSingleDecimalPlaceNumbers: true,
forceUKStyle: false
}
options object's key | Type | Obligatory? | Default | Description |
---|---|---|---|---|
removeThousandSeparatorsFromNumbers | Boolean | no | true | Should remove thousand separators? 1,000,000 β 1000000 ? Or Swiss-style, 1'000'000 β 1000000 ? Or Russian-style, 1 000 000 β 1000000 ? |
padSingleDecimalPlaceNumbers | Boolean | no | true | Should we pad one decimal place numbers with zero? 100.2 β 100.20 ? |
forceUKStyle | Boolean | no | false | Should we convert the decimal separator commas into dots? 1,5 β 1.5 ? |
Β§ Changelog
See it in the monorepo , on GitHub.
Β§ Contributing
To report bugs or request features or assistance, raise an issue on GitHub .
Any code contributions welcome! All Pull Requests will be dealt promptly.
Β§ Licence
Copyright Β© 2010β2021 Roy Revelt and other contributors
Related packages:
π¦ detergent 7.0.6
Extracts, cleans and encodes text
π¦ csv-split-easy 5.0.6
Splits the CSV string into array of arrays, each representing a row of columns
π¦ string-find-malformed 2.0.6
Search for a malformed string. Think of Levenshtein distance but in search
π¦ string-range-expander 2.0.6
Expands string index ranges within whitespace boundaries until letters are met
π¦ string-extract-class-names 6.0.6
Extracts CSS class/id names from a string
π¦ string-process-comma-separated 2.0.6
Extracts chunks from possibly comma or whatever-separated string
π¦ string-collapse-leading-whitespace 5.0.6
Collapse the leading and trailing whitespace of a string