如何将数字转化成千分位格式

  • 使用JavaScript 实现 paddingNum 方法
  • 分隔数字,每隔三位使用逗号分隔一次
  • return() 返回分隔后的字符串

@example

  • paddingNum(123) //return 123
  • paddingNum(12345) return 123,45
  • paddingNum(123456) return 123,456

方法一:用toLocaleString()方法

function paddingNum(number){
    return number.toLocaleString()
}
console.log(paddingNum(123456))
console.log(paddingNum(12345))
console.log(paddingNum(123))

tolocaleString()不仅可以根据本地时间把 Date 对象转换为字符串,还可以将数字转化为千分位格式

方法二:利用正则

function paddingNum(num) {
            let [integer, point] = num.toString().split(".")
            let res
            let reg = /(\d{3})(?=\d)/g
            let newStr = integer.split("").reverse().join("").replace(reg, (match, $1) => {
                return match + ","
            })
            newStr = newStr.split("").reverse().join("")
            point ? res = newStr + "." + point : res = newStr
            return res
        }
        console.log(paddingNum(123456))
        console.log(paddingNum(12345))
        console.log(paddingNum(123))

方法三 split切割

function paddingNum(num) {
    let flag = num > 0 ? true : false;
    const numArr = Math.abs(num).toString().split('.');
    let right = numArr[1] === undefined ? '' : '.' + numArr[1];
    let leftArr = numArr[0].split('');
    let res = [];
    for (let i = leftArr.length - 1, count = 0; i >= 0; i--, count++) {
        if (count % 3 === 0 && i != leftArr.length - 1) res.unshift(',');
        res.unshift(leftArr[i]);
    }
    return flag ? res.join('') + right : '-' + res.join('') + right;
}
        console.log(paddingNum(123456))
        console.log(paddingNum(12345))
        console.log(paddingNum(123))



你可能感兴趣的:(如何将数字转化成千分位格式)