【问题标题】:jQuery pull currency without dollar signjQuery拉货币没有美元符号
【发布时间】:2011-11-26 05:47:33
【问题描述】:

我有一个标有价格的标签(即 150.00 美元)。我想使用 jQuery 只提取不带美元符号 ($) 的文本值。

<div>
  $150.00
</div>

我想将以上内容输出为150.00

【问题讨论】:

    标签: jquery regex replace


    【解决方案1】:

    使用替换更好,但我建议您可以从字符串中删除任何货币符号,例如

    $ 150.00
    Fr. 150.00
    € 689.00
    

    以上三种货币符号我已经测试过了。你也可以为其他人做。

    var price = $("div").text().replace(/[^\d\.]/g, '');
    

    上面的正则表达式将删除不是数字或句点的所有内容。因此,您可以获得不带货币符号的字符串,但如果您控制台输出为“Fr. 150.00”,那么您将获得价格为

    console.log('price : '+price);
    
    output = price : .150.00
    

    这是错误的,所以你检查“。”的索引。然后拆分它并得到正确的结果。

    if (price.indexOf('.') == 0) {
            price = parseFloat(price.split('.')[1]);
    }else{
            price = parseFloat(price);
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用replace$ 字符替换为空字符串:

      var price = $("div").text().replace("$", "");
      

      请注意,在您的确切示例(具有该间距)的情况下,不会删除空格。如果您打算将字符串用作数字(例如通过parseFloat),这并不重要,但如果您想在其他地方将其用作文本,您可能需要使用 jQuery 删除空格.trim.

      更新 - 基于 cmets

      replace 返回一个字符串。获得该字符串后,您可以使用 parseFloat(或 parseInt,但您使用的是浮点数)将其解析为数字:

      var convertedToNumber = parseFloat(price);

      现在您已经有了一个数字,您可以对其进行数学运算:

      var percentage = convertedToNumber * 0.95;

      【讨论】:

      • 这行得通,但现在我需要修改我的问题,因为我正在尝试将该数字乘以 0.95 并发出测试警报,即。 var thePrice = $("div").text().replace("$", ""); var isFivePercent = $((thePrice) * .95); alert(isFivePercent);
      • 不确定你想在那里做什么,但你正在将一个字符串包装在一个 jQuery 对象中,然后尝试将该对象乘以 0.95。使用parseFloat将字符串解析为Number,不要放在jQuery对象中!
      • 我正在尝试根据包含当前价格的 div 显示折扣价。
      • 这很完美!还有一种..有什么方法可以得到它,所以它在显示时只显示小数点后 2 位?
      【解决方案3】:

      $('div').text().replace('$', ''); 会达到你的目的吗?

      【讨论】:

        猜你喜欢
        • 2018-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多