diff --git a/src/utils/number.js b/src/utils/number.js index b1550ef37..7b62b1ae3 100644 --- a/src/utils/number.js +++ b/src/utils/number.js @@ -308,7 +308,7 @@ export function format (value, options) { */ export function splitNumber (value) { // parse the input value - const match = String(value).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/) + const match = String(value).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/) if (!match) { throw new SyntaxError('Invalid number ' + value) } diff --git a/test/unit-tests/utils/number.test.js b/test/unit-tests/utils/number.test.js index 19674ed3f..358e12950 100644 --- a/test/unit-tests/utils/number.test.js +++ b/test/unit-tests/utils/number.test.js @@ -376,6 +376,7 @@ describe('number', function () { assert.deepStrictEqual(splitNumber('-23e3'), { sign: '-', coefficients: [2, 3], exponent: 4 }) assert.deepStrictEqual(splitNumber('2.3e-3'), { sign: '', coefficients: [2, 3], exponent: -3 }) assert.deepStrictEqual(splitNumber('23e-3'), { sign: '', coefficients: [2, 3], exponent: -2 }) + assert.deepStrictEqual(splitNumber('000e+003'), { sign: '', coefficients: [0], exponent: 3 }) assert.deepStrictEqual(splitNumber('-23e-3'), { sign: '-', coefficients: [2, 3], exponent: -2 }) assert.deepStrictEqual(splitNumber('99.99'), { sign: '', coefficients: [9, 9, 9, 9], exponent: 1 }) })