Jquery计算问题

时间:2014-11-14 15:58:48

标签: javascript jquery

我试图创建一个脚本,从几个选择框中获取一些值,然后用它们做一些数学运算。 问题是脚本需要放在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非常长,所以最好是看看小提琴。 任何人都可以帮我做一个正确的计算......?!

提前谢谢

1 个答案:

答案 0 :(得分:1)

您从荷兰语格式转换为普通浮动格式不正确。

考虑使用:

.replace(/[^\d,]/g,"").replace(",",".")

工作示例:http://jsfiddle.net/pgaphma3/3/

修改

要允许加号或减号使用/[^\d,\-+]/g