Javascript 使用parseFloat清理或其他方法清理变量输出值问题
我正在使用谷歌地图等使用距离计算器脚本检索距离 然后根据该距离计算票价成本,但该脚本的输出在距离字段中以x,y英里的形式从Google动态显示 使用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
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啊,对了,我的错。