我试图从变量中删除连字符(如果它是负数),但是当使用替换函数时,我得到'undefined不是函数'。
var extraDivs = checkNumDivs.length - 20;
if (extraDivs <= -1) {
extraDivsNoDash = extraDivs.replace("-", "");
$('.title a').html('Add ' + extraDivsNoDash);
} else {
$('.title a').html('Remove ' + extraDivs);
}
答案 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