【发布时间】:2017-09-19 06:06:44
【问题描述】:
我有以下文字:
{"status": "ok","data": {"grpd": 0,"obj": 073741824,"objInst": 0,"no": null,"values": [3.523422,0,-323123123,3.423,9223372036854775807,0,"test 123.32",0,0,"",0,0]}}
我需要匹配并在数组“values”中的数字周围加上引号,所以它的结果应该是:
{"status": "ok","data": {"grpd": 0,"obj": 073741824,"objInst": 0,"no": null,"values": ["3.523422","0","-323123123","3.423","9223372036854775807","0","test 123.32","0","0","","0","0"]}}
数字可以是浮点数、负数和普通数。
【问题讨论】:
-
使用 JSON 解析器。如果我可以评论十几次,我会的。您可能会一直使用正则表达式,但我认为正则表达式不应该是这里的主要解决方案。
-
为什么要把数字变成字符串呢?如果我学到了一件事,那就是让原始类型保留它们的原生类型。
-
很可能您采用了错误的方法,无需将数字转换为字符串。因为它们是数字...
-
我正在转换它们,因为我需要处理 JS 不支持的大数字,我只需要获取这些值并将它们放在页面上。大数字是这样的:9223372036854775807。试着把它像一个数字一样放在你的控制台上。如果有更好的方法可以做到这一点,我会很乐意使用它,但我不知道。所以我将它们转换为字符串,然后用 JSON 解析器解析它们。
-
如何生成这个 JSON?为什么不在构建这个 JSON 之前/时制作
obj.data.values和String[]?正如您所说,当您只想将它们放在页面上时,这些数字是数字而不是字符串真的有问题吗?这么多问题,只是为了避免这种黑客攻击
标签: javascript regex replace match