Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用双引号复合替换浮点数_Javascript_Json_Regex - Fatal编程技术网

Javascript 用双引号复合替换浮点数

Javascript 用双引号复合替换浮点数,javascript,json,regex,Javascript,Json,Regex,我在PHP和javascript Ajax调用之间来回流动JSON字符串时遇到问题。PHP例程发送JSON编码的字符串,在浮点数周围不加引号,即 {"Route_1":[{"lat":-31.526107395574975,"lng":146.31591796875},{"lat":-31.51674215813217,"lng":145.5303955078125}]}} 但是,当ajax例程接收到JSON字符串时,所有浮点数周围都有双引号,如下所示: {"Route_1":[{"lat":

我在PHP和javascript Ajax调用之间来回流动JSON字符串时遇到问题。PHP例程发送JSON编码的字符串,在浮点数周围不加引号,即

{"Route_1":[{"lat":-31.526107395574975,"lng":146.31591796875},{"lat":-31.51674215813217,"lng":145.5303955078125}]}}
但是,当ajax例程接收到JSON字符串时,所有浮点数周围都有双引号,如下所示:

{"Route_1":[{"lat":"-31.526107395574975","lng":"146.31591796875"},{"lat":"-31.51674215813217","lng":"145.5303955078125"}]}
因此,经过几天的深入研究,我决定最好的方法就是解析它,删除双引号。我可以识别浮点数并使用。但是复合替换并没有像我期望的那样工作——也就是说,它只是返回相同的字符串

有人能解释一下吗?顺便说一句,这和问问题不一样

var str='{“路线1”:[{“lat”:“-31.5261073995574975”,“lng”:“146.31591796875”},{“lat”:“-31.51674215813217”,“lng”:“145.5303955078125”}”
var regex=/[-+]?[0-9]*\.?[0-9]+/g;
var t=str.replace(正则表达式,函数(x){
返回x.replace(/“/g,”);
})

console.log(t);
您还需要在正则表达式中匹配
。检查以下更新

var str='{“路线1”:[{“纬度”:“-31.5261073995574975”,“液化天然气”:“146.31591796875”},{“纬度”:“-31.51674215813217”,“液化天然气”:“145.5303955078125”}”;
var regex=/\“[-+]?[0-9]*\.?[0-9]+\”/g;
var t=str.replace(正则表达式,函数(x){
返回x.replace(/“/g,”);
})

console.log(t)
如果你有一个完全可服务的JSON,你可以转换成一个对象,然后进行操作,为什么还要使用正则表达式?虽然它实际上似乎不是有效的JSON。但是,我的观点是——你想用JSON做事情——如果你有一个有效的JSON,你不需要对它进行正则表达式。我所有传输的可能重复都是在JSON中。On服务器端代码“$jsonArray=json\u encode($json);'传输正确的文件,但一旦在客户端引入了引号-尝试解开它太耗时了。您拥有的
str
参数不包含正确的JSON,因为它也引用数组中的每个对象。但是,当y为您可以正确地将JSON转换为JavaScript对象,如链接问题所示。它将您的问题从“如何将一个字符串转换为一个数字”转换为“如何将一个字符串转换为一个数字?”“这是更安全、更容易和更好的定义。使用正则表达式既不必要又不可靠,这使得它是一种错误的方法。Regex金锤不是。我不同意正则表达式是这里工作的正确工具。2.这仍然不是正确的JSON。我为JSON中的错误感到抱歉。我将在上面更正它。当我测试从客户端发送的JSON字符串时,出现了语法错误。我用了双引号来看看这是否是导致问题的原因。现在显示正确的JSON。谢谢