使用 - if(isNaN()))来查找和替换

时间:2011-12-29 09:42:05

标签: jquery

我有一个小计算器,我想配置CSS保证金速记到%

我目前正在让用户以一种形式输入数字,然后我将每个数字分开并对其进行“数学运算”。

我希望它在用户使用CSS简写时忽略任何NaN。

我现在有了这个 -

  if( isNaN( parseInt(margins || paddings ) ) )
       alert(" Please re-enter your age.");

有效,但我想改变“警告”位,只是忽略/替换NaN。

有什么想法吗?

这是我的JSFiddle的链接 - http://jsfiddle.net/sturobson/reCjA/8/

如果用户未提交任何数字

,我不希望出现NaN

2 个答案:

答案 0 :(得分:0)

嗯......非常琐碎。

if (isNaN(parseInt(margins || paddings))) {
    //do nothing.
}

另一种选择,相反的方向:

if(!isNaN(parseInt(margins || paddings))) {
    //do something
}

看到你的编辑后,看起来你需要的是包装parseInt的自定义函数,如果没有有效数字则返回空字符串:

function GetIntOrEmpty(value) {
    var result = parseInt(value, 10);
    return isNaN(result) ? "" : result + "";
}

然后只需调用它而不是parseInt,并将所有计算都移到函数调用的“内部”,因为用字符串进行数学运算并不是一个好主意。

例如:

//OTHER RESULT CALCULATIONS
var result4 = GetIntOrEmpty(num4* 2);
var result7 = GetIntOrEmpty(num5 * 2);
var result8 = GetIntOrEmpty(num3 * 2);
var resulta = GetIntOrEmpty(num1 - result8 - result4 - result7);
var result3 = GetIntOrEmpty(num1 - result4);
var result5 = GetIntOrEmpty(num4 / num1 * 100);
var result6 = GetIntOrEmpty(num5 / num1 * 100);
var result = GetIntOrEmpty(resulta / num2 * 100);
var result2 = GetIntOrEmpty(num1 - num3);

Updated fiddle

答案 1 :(得分:0)

据我所知,你不能做类似的事情:


if( isNaN( parseInt(margins || paddings ) ) ) {
    alert(" Please re-enter your age.");
    return false;
}