mout
Version:
Modular Utilities
28 lines (27 loc) • 1.16 kB
JavaScript
;
exports.__esModule = true;
var toNumber_1 = require("../lang/toNumber");
/**
* Converts number into currency format
*/
function currencyFormat(val, nDecimalDigits, decimalSeparator, thousandsSeparator) {
val = toNumber_1["default"](val);
nDecimalDigits = nDecimalDigits == null ? 2 : nDecimalDigits;
decimalSeparator = decimalSeparator == null ? '.' : decimalSeparator;
thousandsSeparator = thousandsSeparator == null ? ',' : thousandsSeparator;
// can't use enforce precision since it returns a number and we are
// doing a RegExp over the string
var fixed = val.toFixed(nDecimalDigits);
// separate begin [$1], middle [$2] and decimal digits [$4]
var parts = new RegExp("^(-?\\d{1,3})((?:\\d{3})+)(\\.(\\d{" + nDecimalDigits + "}))?$").exec(fixed);
if (parts) {
// val >= 1000 || val <= -1000
return (parts[1] +
parts[2].replace(/\d{3}/g, thousandsSeparator + "$&") +
(parts[4] ? decimalSeparator + parts[4] : ''));
}
else {
return fixed.replace('.', decimalSeparator);
}
}
exports["default"] = currencyFormat;