我试图创建一个脚本,从几个选择框中获取一些值,然后用它们做一些数学运算。 问题是脚本需要放在SaaS环境中,所以我做东西的选择都是有限的。下面描述的方法是唯一的方法。
我遇到的问题是我可以从选择框中收到正确的值,但我无法将它们转换为2位小数。此外,我无法将初始值adviesprijs
转换为例如。 1500而不是1.5或1.500.00。我真的无法理解我做错了什么。
我创造了一个小提琴here我认为这最能描述我的问题!
我的剧本
function update_amounts() {
var perc = '10' || 0; //this is a value from a Twig tag. Not relevant for question!
var korting = ((100-perc)/100);
var adviesprijs = '€1.500,00'.replace(/[^\d.]/g, ''); //gives 1.5 or 1.500.00 etc..
var adviesprijsValue = parseFloat(adviesprijs) || 0;
var sum = 0.0;
$('#product_configure_form .product-configure-custom-option select').each(function () {
var optionText = $(this).find('option:selected').text();
var matches = optionText.match(/\(([^)]+)\)/g) || [];
if (matches.length > 0) {
var priceText = matches[matches.length - 1];
if (priceText.indexOf("€") > -1) {
var priceClean = priceText.replace(/[^0-9\+\-\.\,]/g, '');
var priceValue = parseFloat(priceClean) || 0;
sum += priceValue;
}
}
});
var sum2 = sum+adviesprijsValue;
var sumBtw = (sum2*1.21).toFixed(2);
$('#amount').text('€' +sum2);//
$('#amountBtw').html('(€'+sumBtw+' - Incl. 21% BTW)');//.toFixed(2)
}
$(document).ready(function(){
$( "#product_configure_form").on("change", ".product-configure-custom-option select", update_amounts);
});
HTML非常长,所以最好是看看小提琴。 任何人都可以帮我做一个正确的计算......?!
提前谢谢
答案 0 :(得分:1)
您从荷兰语格式转换为普通浮动格式不正确。
考虑使用:
.replace(/[^\d,]/g,"").replace(",",".")
工作示例:http://jsfiddle.net/pgaphma3/3/
修改强>
要允许加号或减号使用/[^\d,\-+]/g