JavaScript 千分位算法

https://gist.github.com/748249

v1:

1function commfy0(n){
2    var a = n.toString().split(".");
3    var i = a[0].length%3;
4    var prefix = (a[0].substr(0,i)+a[0].substr(i).replace(/(\d{3})/g,",$1")).replace(/^,/, "");
5    //var postfix = a[1] ? "."+a[1].replace(/(\d{3})/g, "$1,").replace(/,$/, "") : "";
6    return prefix+(a[1]?"."+a[1]:"");
7}

v2:

1var commfy1 = (function(){
2    var re=/(\d{1,3})(?=(?:\d{3})+(?:$|\.))/g;
3    return function(n){
4        var a=n.toString().split(".");
5        a[0] = a[0].replace(re,"$1,");
6        return a.join(".");
7    };
8})();

v3:

var commfy2 = (function(){ var re=/\B(?=(?:\d{3})+$)/g; return function(n){ var a=n.toString().split("."); a[0] = a[0].replace(re,","); return a.join("."); }; })();

参考阅读


Tags: JavaScript, 算法

Published on 2010-12-20

ON THIS PAGE