js 数据转换为货币格式

79 阅读1分钟

很多写原生小朋友头疼的逻辑...

将一组数字转换为货币格式 例如:199998888 ====》$199.998.888.00

    
    let num=199998888
    console.log( formatNum(num))//$199.998.888
    function formatNum(num){
        if(!/^(-|\+)?(\d+)(\.\d+)?$/.test(num)){
            return num;
        }
        let sign = RegExp.$1;
        let middle = RegExp.$2;
        let decimals = RegExp.$3;
        let reg = /(\d)(\d{3})(,|$)/
        while(reg.test(middle)){
            middle = middle.replace(reg, "$1,$2$3");
        }
        return sign+""+middle+""+decimals;
    }