"Александр Кудряшов" написал:DigitsFromString оно и есть
Меня его код немного в замешательство привел.. Кажется что он возвращает стринг. ...
function DigitsFromString(Number){
var ValidChars ="0123456789";
var Result ='';
var Char;if(Number.length!=0){for(var i =0; i < Number.length; i++){
Char = Number.charAt(i);if(ValidChars.indexOf(Char)!=-1){
Result += Char;}}}return Result;}
Цифры с префиксом 0 считаются переданными в восьмеричной системе (судя по справке). Можно, как написала Ольга, вторым параметром передавать базу системы счисления (10). Тогда все корректно работает.
Евгений, функция работает корректно, Вы просто не учли следующего:
parseInt(numString, [radix])
numString
Required. A string to convert into a number.
radix
Optional. A value between 2 and 36 indicating the base of the number contained in numString. If not supplied, strings with a prefix of '0x' are considered hexadecimal and strings with a prefix of '0' are considered octal. All other strings are considered decimal. (http://msdn.microsoft.com/en-us/library/x53yedee%28VS.85%29.aspx)
В Вашем случае необходимо передавать основание, чтобы получить корректное значение.
Во многих случаях достаточно поделить любую строку на 1. Если строка принципиально преобразуема в число, тип изменится на числовой. Иначе будет NaN
var a ='0076547.6787678';//тип - строка
a = a /1;//преобразовали тип
debugger;//Можно убедиться, тип у переменной "a" стал double, //лишние нули исчезли.
"Будак Анатолий Васильевич" написал:Во многих случаях достаточно поделить любую строку на 1. Если строка принципиально преобразуема в число, тип изменится на числовой.