我有一个来自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?
答案 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