【问题标题】:Calculation for comma number gives NaN value逗号数的计算给出 NaN 值
【发布时间】:2020-09-30 20:44:22
【问题描述】:

我尝试将用户需要输入数字的 2 个输入相乘,但输出给了我 NaN 值。 顺便说一句,输入数字有逗号分隔符。我尝试从下面的链接中实现该方法,并且逗号分隔符正在工作。只是当我将它们相乘时,它给了我 NaN 值。

Can jQuery add commas while user typing numbers?

谁能帮我解决这个问题。非常感谢您的帮助。

Javascript

$('.textInput').on('change keyup', function() {

      // skip for arrow keys
      if(event.which >= 37 && event.which <= 40) return;

      // format number
      $(this).val(function(index, value) {
        return value
        .replace(/\D/g, "")
        .replace(/(\d)(?=(\d{3})+$)/g, '$1,');
        ;
      });

      product_total_price=0;

      var product_price= Number($('#id_Product-0-price').val());
      var product_quantity= Number($('#id_Product-0-quantity').val());

      product_total_price= product_price * product_quantity;
      $('#id_Product-0-total_price').val(product_total_price);

});

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这里的问题是您修改了输入以显示commas,这完全没问题,但是您在将它们转换/转换为Number 之前没有删除commas

    从字符串"1,234" 转换数字的快速测试将为您提供 NaN 结果。见截图:

    解决办法:

    1. 删除逗号
    2. 然后转换为Number
    3. 然后计算product_total_price

    要删除所有逗号,请简单使用:

    yourString.replace(/,/g, '')
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢!计算现在正在运行,但如何将逗号分隔符添加回输出?
    • 您只需运行product_total_price.replace(/\D/g, "").replace(/(\d)(?=(\d{3})+$)/g, '$1,'),然后再将其分配给您的输出。
    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 2014-12-03
    • 2021-09-04
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多