2014-09-03 2 views
2

Я пытаюсь удалить дефис из переменной, если это отрицательное число, но при использовании функции replace я получаю «undefined is not a function».Удалить дефис из переменной

var extraDivs = checkNumDivs.length - 20; 

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

ответ

7

Вы можете использовать только строку .replace.
Попробуйте это:

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

Или, на самом деле преобразовать целое положительное число, используя Math.abs:

extraDivsNoDash = Math.abs(extraDivs); 
+0

... и с положительным номером можно заменить ??? –

+1

@ C-linkNepal: Что? Я понятия не имею, что вы пытаетесь сказать. – Cerbrus

+0

Вы говорите, что замените работы на строку, но снова сказали, чтобы преобразовать в положительное число, которое я не мог понять ... –

0

Просто используйте метод .abs по математике

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

И если Math.abs - это мейнстрим по вашему вкусу (я не рекомендую это делать).

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

Editted @Anton

+2

Не ... Почему бы вам даже предложить это. – Cerbrus

+1

лишний кронштейн ')' в конце. И это не работает, он возвращает «NaN»? или я делаю это неправильно. – Anton

1

Если я правильно с «дефис» вы имеете в виду символ «минус» здесь, то есть вы хотите, чтобы преобразовать подписанный номер как беззнаковое один.

Вот прямое решение вашей проблемы: -

Просто используйте:

Math.abs(extraDivs); 

Это будет заботиться о вашей проблеме и даст вам положительное число в качестве результата.

Вот код, который нужен написать:

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

Надеется, что это поможет вам!

0

Почему бы и нет? Я думаю, что это самый простой, легкий и простой вариант:

var extraDivs = checkNumDivs.length - 20; 

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

$('.title a').html(text); 
Смежные вопросы