【问题标题】:Parsing a price with , and ,-- exception with parseFloat()使用 , 和 , 解析价格 - 使用 parseFloat() 异常
【发布时间】:2014-10-14 21:28:54
【问题描述】:

我正在尝试从 html 文档中解析价格:

HTML 元素如下所示:

<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。

这是我目前的解决方案:

var currentPrice = parseFloat(document.getElementById("market_buynow_dialog_totals_total").innerHTML.replace(/[,€]/g, ""));

但是有一个例外打破了我的小解决方案:价格有时也可以是 300,-- 或 250,--。在这种情况下,currentPrice 是 300 或 250,而不是所需的 30000 或 25000。

我正在尝试为这个问题找到一个优雅且特别简短的解决方案。你能帮帮我吗?

【问题讨论】:

    标签: javascript parsing parsefloat


    【解决方案1】:

    试试这个:

    var currentPrice = parseFloat(document.getElementById("market_buynow_dialog_totals_total").innerHTML.replace(/[,€]/g, "").replace(/\D/g,'0'));
    

    这会将所有剩余的非整数转换为 0。

    【讨论】:

    • 短小精悍,恰到好处。非常感谢。因为我也想在编程方面做得更好,而不仅仅是寻求帮助,你会说什么是我自己找到这个的最好方法?我想念 JAVA APi for JS,你能推荐什么网站吗?
    • Google 是您最好的朋友。首先弄清楚你想如何解决一个问题,然后看看如何去做。无论如何,这是我通常的做法。祝你好运!
    【解决方案2】:

    您可以尝试用“00”替换“--”部分 - 只需在 ,€ 部分之前插入替换即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多