Преобразовать строку в целочисленное значение в JavaScript очень просто. Для этого есть специальная функция parseInt().
Пример:
var width = "640px";
var widthVal = parseInt(width, 10);
// widthVal = 640;
Также существует функция для преобразования в число с плавающей точкой (float) — parseFloat().
Примеры:
// parseInt():
var i = parseInt("100px", 10); // i=100
var i = parseInt("0xA"); //i=10
var i = parseInt("10.5", 10); // i=10
var i = parseInt("text 10", 10); // i=NaN
var i = parseInt("AF", 16); // i=175
var i = parseInt("10", 2); // i=2
var i = parseInt("10", 8); // i=8
var i = parseInt("10", 10); // i=10
var i = parseInt("010"); // i=8
var i = parseInt("010", 8); // i=8
var i = parseInt("010", 10); // i=10
// parseFloat():
var f = parseFloat("100px"); // f=100.0
var f = parseFloat("0xA"); // f=NaN
var f = parseFloat("10.5"); // f=10.5
var f = parseFloat("10.5.7"); // f=10.5
var f = parseFloat("0908"); // f=908
var f = parseFloat("text 10"); // f=NaN
А из-за нестрогой типизации javascript, так еще проще:
var width = «640px»;
var widthVal = width-0;
// widthVal = 640;
Ага… Попробуйте:
var checkNum = ’09’;
alert(parseInt(checkNum));
Думайте будет 9 Ага…
Хотя вот так всё ок:
alert(parseInt(’09’, 10));
:)
Вообще этот пример был расмотрен в посте,
var i = parseInt(«010»); // i=8
но по умолчанию, всё же, используется десятичная система исчисления.
Могу с вами согласится, что лучше указать явно, чтобы избежать подобных ситуаций.
Подправил пост.
Можно пользоваться бинарной операцией для гарантии получения целочисленного значения:
function toInt(value) {
return value << 0;
}