我有以下JSON,我想在数字之间添加逗号,但是当我这样做时,JSON失败了。我的代码版本的代码可以在下面的小提琴链接中看到
FIDDLE 我想将此11488897更改为11,488,897
这可能吗?怎么办呢?
感谢您的帮助
^ # start
\w*? # Match 0 or more word characters (non-greedy)
[a-zA-Z] # Match an English alphabet
\w* # Match 0 or more word characters
$ # end
答案 0 :(得分:3)
如果你想保留逗号,你只需要使用字符串:
"data": ["48,353,330","38,079,817","37,130,929","1,957,317"]
这是不是一个好主意是另一个故事。通常,您希望服务器返回的JSON包含原始(即整数)数据,然后在您实际使用时将其格式化。这样,可以使用相同的RPC端点来获取数据,以便在图表 或 中使用,以用于以后可能出现的任何其他目的。
答案 1 :(得分:1)
试试这个:
var data = [{
"name": "",
"data": ["Totals","Total1 ","Total 2","total 3" ]
}, {
"name": "Amount1",
"data": [48353330,38079817,37130929,1957317]
}, {
"name": "Amount2",
"data": [11488897,8902674,8814629,497369]
}];
data.forEach(function(obj) {
obj.data = obj.data.map(function(item) {
if (typeof item == 'number') {
return item.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
return item;
}
});
});
alert(JSON.stringify(data, true, 4));
答案 2 :(得分:1)
我不知道它是否是跨浏览器但如果你这样做
var number = 11488897;
number = number.toLocaleString('en');
您将在小数点上使用逗号获取数字(字符串)