天天看點

數字轉換成價格(從右到左每三位數加一個逗号,若是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
           

當然,它還可以格式化時間格式,在此就不多說,以免太雜.