首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用逗号设置Javascript数字格式

使用逗号设置Javascript数字格式
EN

Stack Overflow用户
提问于 2013-06-04 02:00:09
回答 4查看 44.5K关注 0票数 21

我正在尝试格式化数字,使它们在每3个数字之间有逗号。然而,它非常不可靠,一旦达到8个数字就不能工作。我已经将所有代码放在下面的jsfiddle中:

代码语言:javascript
复制
function commaSeparateNumber(val){
    val = val.replace(',', '');
    var array = val.split('');
    var index = -3;
    while (array.length + index > 0) {
        array.splice(index, 0, ',');
        // Decrement by 4 since we just added another unit to the array.
        index -= 4;
    }
    return array.join('');
};    

$(document).on('keyup', '.test', function() {
    var value = $(this).val();
    value = commaSeparateNumber(value);
    $(this).val(value);
});

http://jsfiddle.net/R8JrF/

如有任何帮助,我们不胜感激!

EN

回答 4

Stack Overflow用户

发布于 2016-12-08 16:23:50

使用Number.prototype.toLocaleString(); check here

代码语言:javascript
复制
var no = 3456;
no.toLocaleString(); 

给出了3456

票数 15
EN

Stack Overflow用户

发布于 2013-06-04 02:08:39

您的问题是,当您到达第8位时,中间结果中已经有两个逗号。然而,

代码语言:javascript
复制
val = val.replace(',', '');

只替换第一个。您需要提供一个设置了global标志的正则表达式:

代码语言:javascript
复制
val = val.replace(/,/g, '');

Updated, working fiddle

票数 5
EN

Stack Overflow用户

发布于 2020-05-08 19:45:47

试试Intl.NumberFormat

代码语言:javascript
复制
var number = 1000000;

console.log(new Intl.NumberFormat().format(number));
// 1,000,000

您的问题的解决方案:https://jsfiddle.net/mf2s48jo/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16902924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档