Skip to content

Instantly share code, notes, and snippets.

@jikeytang
Created May 19, 2014 23:42
Show Gist options
  • Save jikeytang/b810d94ecc62322ac4d1 to your computer and use it in GitHub Desktop.
Save jikeytang/b810d94ecc62322ac4d1 to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140520-题目2
如何将阿拉伯数字每三位一逗号分隔,如:15000000转化为15,000,000。
回复时注意加上下面这句话,才会有语法高亮或格式缩进。
```javascript
@caigou
Copy link

caigou commented May 20, 2014

function clec(n){
    var l=parseInt(n.length/3),arr=n.split('');
    for(var i=0; i<l;i++){
            arr[arr.length-3*(i+1)]=','+arr[arr.length-3*(i+1)];
    }
    return arr.join('').replace(/^,/,'');
}
alert(clec('1500000000'));

@sfger
Copy link

sfger commented May 20, 2014

/* 
 * n要格式化的数字
 * x保留小数位数
 * c几位分割
 * */
var number_format = function(n, x, c){
    if(isNaN(n)) return n;
    n = Number(n||0).toFixed(x||0);
    return n.replace(
        /(^\d+)/,
        function(n){
            return n.replace(new RegExp("\\B(?=(\\d{"+(c||3)+"})+$)", 'g'), ',');
        }
    );
};

console.log(number_format(15000000))

@tanxingxing
Copy link

var num=150;//1,500,000,000
function fuckNum(num){
    var num=num+'';
    var len=num.length,str="",len2=len,str2=num.substr(0,len%3==0?3:len%3);
    for(;len>0;len--){
         if(len2-len==3){
             len2=len;
             str=','+num.substr(len,3)+str;
         }

    }
    return (str2+str);
}
alert(fuckNum(num));

@jiangtao
Copy link

'1500000000000'.replace(/\B(\d{3})/g, ',' + '$1');

@sunnylost
Copy link

//缺点:数字受 Number.MAX_SAFE_INTEGER 限制,还是用正则操作字符串更好。
1500000000000..toLocaleString();

@jiangtao
Copy link

jiangtao commented Jun 4, 2014

sunnylost牛逼

@wsgouwan
Copy link

var num = 1500000000000;
            temp = num +'';
            temp = temp.split('').reverse();
            for(var i = 0 ; i < temp.length; i ++){
                if(i!=0 && i%3 == 0){
                    temp[i] = temp[i] + ',';
                }
            }
            temp = temp.reverse().join('')
            console.log( temp );   
            //   上面的正则太强大了  容我细细品味

@rambo-panda
Copy link

var cut_str_to_bankNum = function(num_str, delimiter){
    num_str = num_str.replace(/\s/g, '');
    if(/^\d+$/.test(num_str)){
        delimiter = delimiter || ',';
        num_str = num_str.split('').reverse();
        return num_str.join('').replace(/(\d{3})/g, "$1"+delimiter).split('').reverse().join('');
    }
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment