Используйте регулярное выражение для формирования числа без начальных нулей в Javascript

У меня возникли проблемы с формированием регулярного выражения, которое может удалять начальные нули из чисел, представленных в виде строк. Извините, но parseFloat - это не то, что мне нужно, так как я буду иметь дело с числами с более чем 30 знаками после запятой.

Мое текущее регулярное выражение:

/(?!-)?(0+)/;

Вот мои тестовые примеры. http://jsfiddle.net/j9mxd/1/

$(function() {
    var r = function(val){
        var re = /(?!-)?(0+)/;
        return val.toString().replace( re, '');
    };
    test("positive", function() {
        equal( r("000.01"), "0.01" );
        equal( r("00.1"), "0.1" );
        equal( r("010.01"), "10.01" );
        equal( r("0010"), "10" );
        equal( r("0010.0"), "10.0" );
        equal( r("10010.0"), "10010.0" );
    });
    test("negative", function() {
        equal( r("-000.01"), "-0.01" );
        equal( r("-00.1"), "-0.1" );
        equal( r("-010.01"), "-10.01" );
        equal( r("-0010"), "-10" );
        equal( r("-0010.0"), "-10.0" );
        equal( r("-10010.0"), "-10010.0" );        
    });
});

Почему мои тестовые случаи не проходят?

5
задан Larry Battle 16 May 2012 в 21:00
поделиться