ОП сообщает, что parseInt('00008');
возвращает 0 (ноль) вместо десятичной 8 (восемь).Причина в том, что ведущие нули заставляют parseInt
принимать базу 8 (вместо базы 10).
Решение :
var increment = parseInt(secondPart, 10)+1;
Пояснение
parseInt
принимает два параметра:
- строка (в нашем случае 'secondPart')
- основание (основание в математических системах счисления).
В документации по JavaScript для parseInt
написано ... всегда указывайте основание при использовании parseInt.
Доказательство :
- var oldparsed = parseInt('00008');
возвращает 0 (ноль)
- var newparsed = parseInt('00008', 8);
возвращает 0 (ноль)
- var parsedplus = parseInt('00008', 8)+1;
возвращает 1 (один)
, тогда как
- var oldparsed = parseInt('00008');
возвращает 0 (ноль)
- var newparsed = parseInt('00008', 10);
возвращает 8 (восемь)
- var parsedplus = parseInt('00008', 10)+1;
возвращает 9 (девять)