- toLocaleString
-
- function formatNumber(num) {
- return Number(num).toLocaleString()
- }
- console.log(formatNumber(123456789.123))
-
- 正则
-
- function formatNumber(num) {
- return num.toString().replace(/\d+/, function (n) {
- return n.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
- })
- }
- console.log(formatNumber(123456789.123))
-
- 递归
-
- function formatNumber(num, chart=',', length=3) {
- let result = ''
- let nums = num.toString().split('.')
- let int = nums[0]
- let decmial = nums[1] ? '.' + nums[1] : ''
- let index = 0
- for (let n = int.length - 1; n >= 0; n--) {
- index ++
- result = int[n] + result
- if (index % length === 0 && n !== 0) { result = chart + result }
- }
- return result + decmial
- }
- console.log(formatNumber(123456789.123))
-
- slice 截取分割
-
- function formatNumber(num, char=',', length=3) {
- let result = ''
- let nums = num.toString().split('.')
- let int = nums[0];
- let decmial = nums[1] ? '.' + nums[1] : ''
- while (int.length > length) {
- result = char + int.slice(-length) + result
- int = int.slice(0, int.length - length)
- }
- if (int) { result = int + result }
- return result + decmial
- }
- console.log(formatNumber(123456789.123))
-