天天看点

数字转换成价格(从右到左每三位数加一个逗号,若是3的整数倍,前面不加逗号)(利用递归)

废话不多说,代码如下:

var num = '123456789012345'; 
 function toPrice(str) {
        if(str.length <= ){
            return str;
        } else {
            return toPrice(str.substr(,str.length-))+','+str.substr(str.length-);
        }
    }
    var num1 = toPrice(num)
    console.log(num1);   //123,456,789,012,345
           

另外还有正则也可以,但是个人水平有限,当时3的整数倍时,还是会在最前面加上逗号 例如: ,123,456,789

有大神在此基础上如有更完善的,多多补充

if(str.length > ){  
    //正则方法一
    str = str.replace(/(?=(?:\d{})+(?!\d))/g,',');  

    //正则方法二
    str1 = str.replace(/\B(?=(?:\d{})+\b)/g,',')
 }
    console.log(str);  
           

哈哈,最后说一个最最简单的方法,就是 toLocaleString()

var a = ;
    console.log(a.toLocaleString());   //123,456,789
           

当然,它还可以格式化时间格式,在此就不多说,以免太杂.