使用parseFloat Sanitize或其他方法来清除变量输出值问题

时间:2018-03-17 02:37:01

标签: javascript php jquery json html5

使用Google地图等使用距离计算器脚本检索距离...

然后根据该距离计算票价,但该脚本的输出会从Google动态显示为距离字段中的x,y英里 使用document.getElementById("distance_road").value = distance1;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 miles) 或者说要将此输出清除为xx.x,这意味着删除','和'里程'。 我试过了:
sanitizedDistance = parseFloat(distance1.replace(",","."));

2 个答案:

答案 0 :(得分:2)

简单地将英里和逗号替换链接起来就像这样

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

答案 1 :(得分:1)

修复是在获得outputed并在表单中调用之前重新定义变量distance1。因此将解析输出以定义所需的输出格式。而这只有通过定义相同的函数distance1而不是添加另一个函数才有可能。

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