數字的千位分隔符實現

經常見到這種場景,數字比較大時每隔3位用逗號分隔開code

思路就是若是是小數的話先用split分開獲得整數部分,而後反轉整數部分的字符串用正則每3個數字加一個逗號而後再反轉回去拼接上小數部分。字符串

在網上看到了一種實現代碼,這個正則還沒看懂:it

function toThousands(str) {
    return str.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
toThousands('12345678912.12345');
toThousands('12345678912');

如下是個人實現代碼io

function fillNumberWithComma(num) {
        num += '';
        if(/^-?\d+(\.\d+)?$/.test(num)) {   //確認是數字
            var segments = num.split('.');
            return segments[0].split('').reverse().join('').replace(/(\d{3})/g, '$1,').split('').reverse().join('') + (segments[1] ? '.' + segments[1] : '');
        }
        return false;
    }
    
    fillNumberWithComma(12345678.12345);
相關文章
相關標籤/搜索