[英]Remove double quotes from the beginning and the end of decimal numbers inside a string
我有以下字符串,并想删除保留其他引号的十进制数字前面和结尾的所有双引号。
"{"id":"default","values":{"level1":["0.0000","0.0000","0.0000"],"level2":["1.0000","1.0000","1.0000"], "score":"2.1100"}}"
应该
"{"id":"default","values":{"level1":[0.0000,0.0000,0.0000],"level2":[1.0000,1.0000,1.0000], "score":2.1100}}"
使用replace(/\\"(?=[0-9]\\.[0-9]+)/g, '')
我设法摆脱了数字开头的双引号,但无法弄清楚最后做报价。
用$1
替换/"(\\d[.]\\d+)"/g
。 $1
引用第一个捕获组,即\\d[.]\\d+
(不带引号的内容)。 \\d
只是[0-9]
的快捷方式。
> var str = '{"id":"default","values":{"level1":["0.0000","0.0000","0.0000"],"level2":["1.0000","1.0000","1.0000"], "score":"2.1100"}}';
undefined
> str.replace(/"(\d[.]\d+)"/g,"$1")
'{"id":"default","values":{"level1":[0.0000,0.0000,0.0000],"level2":[1.0000,1.0000,1.0000], "score":2.1100}}'
对于提到的字符串,可以使用JSON.parse()
将其解析为JavaScript对象,然后对需要考虑为浮点数的值使用parseFloat()
。
var str = '{"id":"default","values":{"level1":["0.0000","0.0000","0.0000"],"level2":["1.0000","1.0000","1.0000"], "score":"2.1100"}}';
str = JSON.parse(str);
str.values.level1 = str.values.level1.map(function(_item) { return parseFloat(_item); });
str.values.level2 = str.values.level2.map(function(_item) { return parseFloat(_item); });
str.values.score = parseFloat(str.values.score);
// if you need it back as a JSON string
str = JSON.stringify(str);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.