javascript - 使用 parseFloat 使用 JavaScript 获取字符串中的价格,但 parseInt 无法正常工作

标签 javascript jquery html

我检索了一个字符串,并使用正则表达式从中提取了一个十进制数,例如1.00 或 3.99。现在我想用这些数字进行计算。如何将这些正则表达式结果转换为正确的数字以便我可以执行计算?在下面的代码中,每次点击都应该将价格添加到之前的总计中,但它不能正确地进行数字求和。

var SaveAfrica = {
  init: function () {
    this.addToBasket();
  },

  addToBasket: function () {
    var featured = $('section.featured'),
        bsktTotalSpan = $('.basket_total span.basket-qty'),
        list = featured.find('ul'),
        item = list.find('li');

    featured.delegate('.buy-now', 'click', function (e) {
        var thisElem = $(this), 
            qtyData = thisElem.closest('li').data('price'),
            total = parseInt(bsktTotalSpan.text()) + parseFloat(qtyData.match(/[\d\.\d]+/i));


        e.preventDefault();

        bsktTotalSpan.text(parseFloat(total));

        console.log('The total is: total);

    });
  }
};

SaveAfrica.init();

数字来源的 HTML:

<li data-price="&pound;2.99"><a href="#" class="buy-now"><img src="someImage.jpg" alt="some image" /></a></li>

非常感谢

最佳答案

您的问题可能是 .match() 返回一个匹配数组。所以你可以尝试这样的事情:

parseFloat(qtyData.match(/[\d\.\d]+/i)[0]);

关于javascript - 使用 parseFloat 使用 JavaScript 获取字符串中的价格,但 parseInt 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7743781/

相关文章:

javascript - 来自浏览器控制台的循环 JavaScript 攻击?

javascript - 未定义但已存在

jquery - 单击删除父 div

html - <select> 下拉几个像素

html - 具有特定类和父元素的 Css 选择器

javascript - 路由器级别订阅中的 meteor 计数

javascript - 如果数字发生变化,则更改 Web 表单元素

javascript - 如何在 WordPress 网站中使用 JavaScript 重定向到另一个链接?

javascript - 下拉菜单在 mozilla firefox 中的工作方式不同

html - 如何向 CSS 表单中的按钮添加两个单独的文本样式?