从变量中删除连字符

时间:2014-09-03 12:09:11

标签: javascript jquery

我试图从变量中删除连字符(如果它是负数),但是当使用替换函数时,我得到'undefined不是函数'。

var extraDivs = checkNumDivs.length - 20;

if (extraDivs <= -1) {
    extraDivsNoDash = extraDivs.replace("-", "");
    $('.title a').html('Add ' + extraDivsNoDash);
} else {
    $('.title a').html('Remove ' + extraDivs);
}

5 个答案:

答案 0 :(得分:7)

您只能在字符串上使用.replace 试试这个:

extraDivsNoDash = (extraDivs + '').replace("-", "");
//                             ^ this converts the number to a string.

或者,使用Math.abs实际将整数转换为正数:

extraDivsNoDash = Math.abs(extraDivs);

答案 1 :(得分:1)

如果我对“连字符”表示正确,则表示此处为“ minus ”符号,即您希望将带符号的数字转换为无符号数字。

以下是您问题的直接解决方案: -

只需使用:

 Math.abs(extraDivs);

这将解决您的问题,并将为您提供正数。

以下是您需要编写的代码:

 if (extraDivs <= -1) {    
          $('.title a').html('Add ' + Math.abs(extraDivs));
    }
else{
         //your code
}

希望这会对你有帮助!

答案 2 :(得分:0)

只需在数学中使用.abs方法

var extraDivs = Math.abs(checkNumDivs.length - 20);

答案 3 :(得分:0)

为什么不呢?我认为这是最简单,轻量和直接的选择:

var extraDivs = checkNumDivs.length - 20;

var text;
if (extraDivs < 0) {
    text = 'Add ' + -extraDivs;
} else {
    text = 'Remove ' + extraDivs;
}

$('.title a').html(text);

答案 4 :(得分:-1)

如果Math.abs是您喜欢的主流(不过我不建议这样做。)

var extraDivs = Math.sqrt(Math.pow(extraDivs), 2);

编辑@Anton