There are many different ways of printing an integer with a comma as a thousand separators in JavaScript.
One of the simplest ways is to use String.prototype.replace()
function with the following arguments:
- regular expression: (?=(\d{3})+(?!\d))
- replacement value: $1,
function formatNumber(num) { return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,') } console.info(formatNumber(2665)) // 2,665 console.info(formatNumber(102665)) // 102,665 console.info(formatNumber(111102665)) // 111,102,665
This will also work for decimal numbers
console.info(formatNumber(1240.5)) // 1,240.5 console.info(formatNumber(1000240.5)) // 1,000,240.5
Currency Formatting
This method will also work with currency formatting. Just a small modification needed.
function currencyFormat(num) { return '$' + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,') } console.info(currencyFormat(2665)) // $2,665.00
In order to format currency for a different country / locale, you would need to add some modifications to the currencyFormat method. A sample currency formatting function for DE locale:
function currencyFormatDE(num) { return ( num .toFixed(2) // always two decimal digits .replace('.', ',') // replace decimal point character with , .replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.') + ' €' ) // use . as a separator } console.info(currencyFormatDE(1234567.89)) // output 1.234.567,89 €
Main Article: https://blog.abelotech.com/posts/number-currency-formatting-javascript/