如何在JS中正确解析parseInt()的价格

时间:2014-10-12 02:16:26

标签: javascript parsing parseint

我正在尝试解析html文档中的价格而我遇到了一些问题:

上面有很多div,因此我不能像往常一样使用parseInt()。以下是类元素的外观:

<div>
<span id="market_buynow_dialog_totals_total"  class="market_dialog_totals_cost">0,11€</span>
<span class="market_dialog_totals_label">Total:</span>
</div>

此外还有一个,,我不想被限制在,的左侧或右侧,在上面的例子中,我很想得到int 11,对于399,99我很想获得39999。

任何人都可以帮助我并告诉我如何实现这一目标吗?我不能自己做这件事,我现在试了很长时间。 TY!

2 个答案:

答案 0 :(得分:1)

您可能希望使用parseFloat,将逗号替换为句点,并将该数字视为单个十进制值。

下面的代码段使用了这种方法(第一个结果),并且还使用parseInt分别解析逗号之前和之后的数字组(第二和第三个结果),并且如上所述(第四个)结果)。

&#13;
&#13;
var src = document.getElementById("market_buynow_dialog_totals_total");
var segments = src.innerText.split(",");
document.getElementById("result1").innerText = parseFloat(src.innerText.replace(/,/, "."));
document.getElementById("result2").innerText = parseInt(segments[0]);
document.getElementById("result3").innerText = parseInt(segments[1]);
document.getElementById("result4").innerText = parseInt(src.innerText.replace(/,/, ""));
&#13;
<div>
<span id="market_buynow_dialog_totals_total"  class="market_dialog_totals_cost">399,99€</span>
<span class="market_dialog_totals_label">Total:</span>
</div>
Parsed result as a decimal: <span id="result1"></span><br/>
Parsed result as an integer, left side: <span id="result2"></span><br/>
Parsed result as an integer, right side: <span id="result3"></span><br/>
Parsed result as an integer, both sides: <span id="result4"></span><br/>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

要从“market_buynow_dialog_totals_total”元素中检索整数,您可以使用以下代码。

function retrieveValue(id){
    return parseFloat(document.getElementById(id).innerHTML.replace(/[,€]/g, ""));
}