替换希腊数字格式(1.000,00)

时间:2017-06-10 21:04:51

标签: javascript json replace

我有一个来自csv的json o,看起来像这样:

json_obj : {"id, name, num1, num2" :"1, name111, 2, 1.000,12" }
{   "id, name, num1, num2" :"2, name222, 34, 5.124,56" }
{   "id, name, num1, num2" :"3, name333, 5.232,56, 1.123,22" }

问题在于,当我解析json时,它理解num1和amp;中的数字。由于希腊数字格式(1.000,00),num2属性为字符串。我试着替换“。”用“”和“,”用“。”为了使用此代码将它们标识为数字:

var getdata = JSON.parse(response.responseText); //takes the data of the csv
var stringified = JSON.stringify(getdata);
stringified = stringified.replace(/\./g, "").replace(/\,/g, ".");
var resource = JSON.parse(stringified);

但它也取代了json的“,”所以我什么都没得到。如何只替换属性num1&的字段? num2?

3 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

var parsedNumber = +'1.000,12'.replace('.', '').replace(',', '.')

答案 1 :(得分:0)

怎么样:



var s = `{"id, name, num1, num2" :"1, name111, 2, 1.000,12" }
{   "id, name, num1, num2" :"2, name222, 34, 5.124,56" }
{   "id, name, num1, num2" :"3, name333, 5.232,56, 1.123,22" }
{   "id, name, num1, num2" :"4, name444, 232,56, 123,22" }
{   "id, name, num1, num2" :"4, name444, 12.345.232,56, 123,22" }`;
var res = s.replace(/(?:(\d+)\.)?(?:(\d+)\.)?(\d+),(\d+)/g, "$1$2$3.$4");
console.log(res);




答案 2 :(得分:0)

您可以在每个项目上使用str.split([separator[, limit]])功能,并将', '设置为分隔符,将4设置为 limit 。但您确实需要知道,所有字段都是分隔 逗号空间。或者其他选项会将所有值都设置为”'”,因此它不仅仅是1.000,12而是'1.000,12'。然后您可以使用 regExp

轻松解析它