Javascript 将带有int和float的字符串解析为数组
我有一个转换为数组的字符串:Javascript 将带有int和float的字符串解析为数组,javascript,arrays,json,Javascript,Arrays,Json,我有一个转换为数组的字符串: var data = "[[1, 2, 3,], [3, 2, 1]]"; var array = JSON.parse(data.replace(/,\s*]/g, ']')); 我需要能够处理浮点,即此表单的输入: var data = "[[2.,23.,1.5904], [4.,23,1.6208]]"; 使用浏览器控制台,当我尝试执行以下操作时: var ar=JSON.parsedata.replace/,\s*]/g,']' 我得到这个错误: Sy
var data = "[[1, 2, 3,], [3, 2, 1]]";
var array = JSON.parse(data.replace(/,\s*]/g, ']'));
我需要能够处理浮点,即此表单的输入:
var data = "[[2.,23.,1.5904], [4.,23,1.6208]]";
使用浏览器控制台,当我尝试执行以下操作时:
var ar=JSON.parsedata.replace/,\s*]/g,']'
我得到这个错误:
SyntaxError: JSON.parse: unterminated fractional number at line 1 column 5 of the JSON data
我猜这和JSON.parse的regexp有关,但我还不擅长regexp,所以我不知道
我一直在玩弄这个:这实际上有助于理解,但我仍然无法解决我的问题
这个问题是我上一个问题的延伸,这个问题已经解决了:
当时我没有想到的是,我还需要能够处理浮点运算你可以用
data.replace(/\.,/g, ".0,)
这将从2.中的每一个替换为2.0
或者你可以
data.replace(/\.,/g, ",")
删除逗号前的点。您可以使用
data.replace(/\.,/g, ".0,)
这将从2.中的每一个替换为2.0
或者你可以
data.replace(/\.,/g, ",")
删除逗号前的点。问题是JSON需要在点后加一个数字 正确的JSON如下所示:
var data = "[[2.0,23.0,1.5904], [4.0,23,1.6208]]";
因此,如果可以控制输出,则必须输出全浮点数,或者解析字符串以将零附加到所有点,如下所示:
data.replace(/\.,/g, ".0,").replace(/\.]/g, ".0]");
请注意,我们还需要查找点,而不仅仅是逗号。问题是JSON需要在点后加一个数字 正确的JSON如下所示:
var data = "[[2.0,23.0,1.5904], [4.0,23,1.6208]]";
因此,如果可以控制输出,则必须输出全浮点数,或者解析字符串以将零附加到所有点,如下所示:
data.replace(/\.,/g, ".0,").replace(/\.]/g, ".0]");
请注意,我们还需要查找点,而不仅仅是逗号