Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中向一个数字添加1000个分隔符?_Javascript_Formatting - Fatal编程技术网

如何在JavaScript中向一个数字添加1000个分隔符?

如何在JavaScript中向一个数字添加1000个分隔符?,javascript,formatting,Javascript,Formatting,可能重复: 我想在JavaScript中给一个数字加上1000个分隔符,比如 最优雅的方式是什么?我不知道优雅是什么 function addCommas(n){ var rx= /(\d+)(\d{3})/; return String(n).replace(/^\d+/, function(w){ while(rx.test(w)){ w= w.replace(rx, '$1,$2'); } retu

可能重复:

我想在JavaScript中给一个数字加上1000个分隔符,比如


最优雅的方式是什么?

我不知道优雅是什么

function addCommas(n){
    var rx=  /(\d+)(\d{3})/;
    return String(n).replace(/^\d+/, function(w){
        while(rx.test(w)){
            w= w.replace(rx, '$1,$2');
        }
        return w;
    });
}
添加逗号('123456789456.34')


返回值:(字符串)123456789456.34

这里有一个添加逗号的函数,可以在这里找到:

我稍微修改了代码,添加了
var sep=',',因此您可以根据语言轻松更改分隔符。

以下是我的看法(只是为了好玩):

var num=1000000;
var cnt=0;//温度计数器。
var s=字符串(num).split(“”)。
反向()。
映射(函数(v){
if(cnt<2){
cnt+=1;
返回v;
}否则{
cnt=0;
返回“,”+v;
}
}).
反向()。
加入(“”);
// 1,000,000
试试这样的正则表达式:

function formatNumber(num)
{
    return ("" + num).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, function($1) { return $1 + "." });
}

alert(formatNumber(100000));


老实说,我在试图解决您的问题时发现了它。

您可以使用以下代码来完成此工作:

(10000000 + "").split('').reverse().map(function (value, i) {
    return (!(i % 3)) ? "." + value : value;
}).reverse().join('');

有很多东西,但没有一个真正起作用,所以我认为不值得在这里插入它们。至少值得一提。这样我们就知道你尝试过但失败了。那么,你尝试了什么?:)和的可能副本。请在提出新问题之前使用搜索。非常感谢!我更改了
var sep=','
var sep='并按如下方式使用:
添加逗号(price.toFixed(2).替换('.',','))
以获得如下格式:
3.426,00
var num = 1000000;
var cnt = 0; // temp counter. 
var s = String(num).split('').
                    reverse().
                    map(function(v) { 
                        if (cnt < 2) {
                            cnt += 1; 
                            return v;
                        } else {
                            cnt = 0; 
                            return ',' + v;
                        }
                    }).
                    reverse().
                    join('');
// 1,000,000
function formatNumber(num)
{
    return ("" + num).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, function($1) { return $1 + "." });
}

alert(formatNumber(100000));
(10000000 + "").split('').reverse().map(function (value, i) {
    return (!(i % 3)) ? "." + value : value;
}).reverse().join('');