Comparing version 0.0.3 to 0.0.4
/* | ||
Simplest possible solution to turn numbers into nicely comma seperated amounts: | ||
1234 => 1,234 | ||
1234 => 1 234 | ||
When addPrecision is set to false (or default is used = false), precision is stripped | ||
*/ | ||
function commaIt(number, addPrecision) { | ||
addPrecision = (addPrecision || false); | ||
function commaIt(number, options) { | ||
//Set up default seperators | ||
addPrecision = (options && options["addPrecision"] || false); | ||
thousandSeperator = (options && options["thousandSeperator"] || " "); | ||
decimalSeperator = (options && options["decimalSeperator"] || ","); | ||
var replacmentRegex ='$1' + thousandSeperator; | ||
//Conversion to string and default return managment | ||
number = number.toString(); | ||
if (number.length === 0) return "0.00"; | ||
var amount = number.split('.')[0]; | ||
var floats = addPrecision ? ('.' + ((number.split('.')[1] || '') +'00').substr(0,2)) : ""; | ||
if (number.length === 0) return "0" + decimalSeperator + "00"; | ||
//Actual parsing of two side of the number | ||
var amount = number.split(decimalSeperator)[0]; | ||
var floats = addPrecision ? (decimalSeperator + ((number.split(decimalSeperator)[1] || '') +'00').substr(0,2)) : ""; | ||
var numberified = amount.split('').reverse().join('') | ||
.replace(/(\d{3}(?!$))/g, '$1,') | ||
.replace(/(\d{3}(?!$))/g, replacmentRegex) | ||
.split('').reverse().join(''); | ||
return numberified + floats; | ||
@@ -18,0 +28,0 @@ } |
{ | ||
"name": "comma-it", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Node.js module convert numbers to amounts", | ||
@@ -5,0 +5,0 @@ "main": "comma-it.js", |
@@ -11,12 +11,12 @@ var commaIt = require("../comma-it").commaIt; | ||
var number = "1234"; | ||
assert.equal(commaIt(number), "1,234"); | ||
assert.equal(commaIt(number), "1 234"); | ||
//Check precision support | ||
var number1 = "1234.1234"; | ||
assert.equal(commaIt(number1), "1,234"); | ||
var number1 = "1234,1234"; | ||
assert.equal(commaIt(number1), "1 234"); | ||
//Check multi commas | ||
var number2 = "12341233.12"; | ||
assert.equal(commaIt(number2), "12,341,233"); | ||
var number2 = "12341233,12"; | ||
assert.equal(commaIt(number2), "12 341 233"); | ||
@@ -26,11 +26,17 @@ //### With Precision support | ||
var number = "1234"; | ||
assert.equal(commaIt(number, true), "1,234.00"); | ||
assert.equal(commaIt(number, {addPrecision:true}), "1 234,00"); | ||
//Check precision support | ||
var number1 = "1234.1234"; | ||
assert.equal(commaIt(number1, true), "1,234.12"); | ||
var number1 = "1234,1234"; | ||
assert.equal(commaIt(number1, {addPrecision:true}), "1 234,12"); | ||
//Check multi commas | ||
var number2 = "12341233,12"; | ||
assert.equal(commaIt(number2, {addPrecision:true}), "12 341 233,12"); | ||
//## Checking non default seperators | ||
//Check > 10000 (multi thousdand seperator) | ||
var number2 = "12341233.12"; | ||
assert.equal(commaIt(number2, true), "12,341,233.12"); | ||
assert.equal(commaIt(number2, {addPrecision:true, thousandSeperator : ",", decimalSeperator : "."}), "12,341,233.12"); |
2915
5
49