首页 > 解决方案 > 添加到当前函数“总计”忽略某些值的逻辑

问题描述

我的项目即将插入几个小时,你花了多少时间。它适用于整数值,但现在我需要添加字符串值。像周日 =“NotWorknig”; 星期一 = "8"; 星期二 = “生病”;

function TotalP1() {
    var text1_p1 = 0;
    var text2_p1 = 0;
    var text3_p1 = 0;
    var TotalAmount = 0;

    text1_p1 = $("#text1_p1").val() == '' ? 0 : $("#text1_p1").val();
    text2_p1 = $("#text2_p1").val() == '' ? 0 : $("#text2_p1").val();
    text3_p1 = $("#text3_p1").val() == '' ? 0 : $("#text3_p1").val();



    TotalAmount =
        parseInt(text1_p1) +
        parseInt(text2_p1) +
        parseInt(text3_p1);


    $("#texttotal_p1").val(TotalAmount);

}

我想重写函数并使其工作相同,但忽略字符串值或特定整数值,例如“29”将是“假日”,如果用户插入的假日值为 29,但它被函数忽略并且不影响总和。没有给我“楠”的价值。任何提示,教程家伙)?

标签: javascript

解决方案


解决方案1:

function TotalP1() {
    var text1_p1 = 0;
    var text2_p1 = 0;
    var text3_p1 = 0;
    var TotalAmount = 0;

    text1_p1 = $("#text1_p1").val() == '' ? 0 : $("#text1_p1").val();
    text2_p1 = $("#text2_p1").val() == '' ? 0 : $("#text2_p1").val();
    text3_p1 = $("#text3_p1").val() == '' ? 0 : $("#text3_p1").val();

    var parsedValueP1 = parseInt(text1_p1);
    var parsedValueP2 = parseInt(text2_p1);
    var parsedValueP3 = parseInt(text3_p1);

    if(!isNaN(parsedValueP1)) {
      TotalAmount += parsedValueP1;
    }

    if(!isNaN(parsedValueP2)) {
      TotalAmount += parsedValueP2;
    }

    if(!isNaN(parsedValueP3)) {
      TotalAmount += parsedValueP3;
    }

    $("#texttotal_p1").val(TotalAmount);

}

解决方案2:

function TotalP1() {
  var text1_p1 = 0;
  var text2_p1 = 0;
  var text3_p1 = 0;
  var TotalAmount = 0;
  var numberRegex = /^\d+$/; //Only for Integers

  text1_p1 = $("#text1_p1").val() == '' ? 0 : $("#text1_p1").val();
  text2_p1 = $("#text2_p1").val() == '' ? 0 : $("#text2_p1").val();
  text3_p1 = $("#text3_p1").val() == '' ? 0 : $("#text3_p1").val();

  if(numberRegex.test(text1_p1)) {
     TotalAmount += parseInt(text1_p1);
  }

  if(numberRegex.test(text2_p1)) {
    TotalAmount += parseInt(text2_p1);
  }

  if(numberRegex.test(text3_p1)) {
    TotalAmount += parseInt(text3_p1);
  }

  $("#texttotal_p1").val(TotalAmount);

}

推荐阅读