我检索了一个字符串,并使用正则表达式从中提取了一个十进制数,例如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="£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/