Убедитесь, что вы указали базу при разборе целых:
parseInt(value[0], 10);
parseInt(value[1], 10);
Весь код:
var text = '24 - 08';
var value = text.split(" - ");
var result = 24 - parseInt(value[0], 10);
result = result + parseInt(value[1], 10);
alert(result);
http://jsbin.com/amusaw/2/edit
Когда строка начинается с 0
parseInt, предполагается, что число является восьмеричным (основание 8). Это устаревшее поведение, но оно ведет себя так или иначе. Число 08
недопустимо в восьмеричном виде, поскольку существуют только цифры 0-7
, поэтому оно просто возвращает 0
. Он определяет, что цифра 8 не является частью числа, это все равно что видеть 0A
или 0T
(или любой другой не 0-7
символ).
Подробнее о parseInt (): https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt. На самом деле вы можете найти пример parseInt("08");
, который вызвал вашу проблему, прямо в нижней части этой страницы.