Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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 使用parseFloat清理或其他方法清理变量输出值问题_Javascript_Php_Jquery_Json_Html - Fatal编程技术网

Javascript 使用parseFloat清理或其他方法清理变量输出值问题

Javascript 使用parseFloat清理或其他方法清理变量输出值问题,javascript,php,jquery,json,html,Javascript,Php,Jquery,Json,Html,我正在使用谷歌地图等使用距离计算器脚本检索距离 然后根据该距离计算票价成本,但该脚本的输出在距离字段中以x,y英里的形式从Google动态显示 使用document.getElementById(“距离道路”)。值=距离1 和distance1=response.routes[0]。legs[0]。distance.text 在“成本”字段中,以这种格式(00.00)接受并输入数据,因此在这里,当尝试运行计算时,输出结果是$NAN 以下是成本脚本: function calculatefare

我正在使用谷歌地图等使用距离计算器脚本检索距离

然后根据该距离计算票价成本,但该脚本的输出在距离字段中以x,y英里的形式从Google动态显示 使用
document.getElementById(“距离道路”)。值=距离1
distance1=response.routes[0]。legs[0]。distance.text
在“成本”字段中,以这种格式(00.00)接受并输入数据,因此在这里,当尝试运行计算时,输出结果是
$NAN

以下是成本脚本:

 function calculatefare() { /* variable declarations*/
   var subTotal=0.00;
   var pricePerFifthMile=0.54;
   var dropOffCharge=2.60;
   var overTwoPassengerCharge=0.50;
   var tripMilage=Number(document.getElementById("distance_road").value); 
   var passengers=Number(document.getElementById("passengers").value);
   /* if there are over 2 riders, each additional passenger pays $2 if (passengers>2)*/ { subTotal=overTwoPassengerCharge*(passengers-3+1); } 
   /* calculate the price based on miles in*/
   subTotal+=parseInt(tripMilage*5)*pricePerFifthMile; subTotal+=dropOffCharge; /* prints the price to the div. toFixed adds cents to integer calculations */
   document.getElementById('price').innerHTML=" $"+subTotal.toFixed(2);
 }
 // JavaScript Document
有没有办法让这个脚本接受这种格式(读取)(xx,x英里) 或者,假设将此输出清理为xx.x,这意味着删除“,”和“英里”。 我试过:

sanitizedDistance=parseFloat(距离1.replace(“,”,”)

只需像这样将英里数和逗号替换链接起来

sanitizedDistance  = parseFloat(distance1.replace("miles","").replace(",","."))

解决方法是在表单中被输出和调用之前,重新定义变量distance1。因此,将解析输出以定义所需的输出格式。这只有通过定义相同的函数distance1而不是添加另一个函数才能实现

var distance1 = parseFloat(distance1.replace(",","."));

一个简单的ish方法是在带有英里数的字段上进行验证,只需要输入一个数字。在数字框后添加世界“英里”,这样用户就不会试图输入它。有许多可用的验证库可以像欧芹一样为您实现这一点。确保输入有效后,继续计算。您尝试的
sanitizedDistance
应该可以工作。。。如果你不继续使用,返回的是
NaN
@vlaz:OP是从一个距离计算器得到的值,我想是@louyspatricebesette啊,对了,我的错。