Skip to content

Commit eac81d1

Browse files
committed
fix(parse-number): refactor es6 destruction to fix traspaling error
Related to https://github.com/telerik/kendo-angular-intl/issues/22
1 parent 733ce21 commit eac81d1

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/numbers/parse-number.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,24 +50,23 @@ export default function parseNumber(value, locale = "en", format = {}) {
5050
const symbols = info.numbers.symbols;
5151

5252
let number = value.toString();
53-
let negative = number.indexOf("-");
5453
let isPercent;
5554

5655
if (exponentRegExp.test(number)) {
5756
number = parseFloat(number.replace(symbols.decimal, "."));
58-
if (isNaN(number)) {
59-
number = null;
60-
}
61-
return number;
57+
return isNaN(number) ? null : number;
6258
}
6359

64-
if (negative > 0) {
60+
const negativeSignIndex = number.indexOf("-");
61+
if (negativeSignIndex > 0) {
6562
return null;
6663
}
6764

68-
negative = negative > -1;
65+
let isNegative = negativeSignIndex > -1;
66+
const { negative: negativeCurrency, number: newNumber } = cleanCurrencyNumber(number, info, format);
6967

70-
({ negative = negative, number } = cleanCurrencyNumber(number, info, format));
68+
number = newNumber;
69+
isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative;
7170

7271
if (format.style === "percent" || number.indexOf(symbols.percentSign) > -1) {
7372
number = number.replace(symbols.percentSign, "");
@@ -83,7 +82,7 @@ export default function parseNumber(value, locale = "en", format = {}) {
8382

8483
if (isNaN(number)) {
8584
number = null;
86-
} else if (negative) {
85+
} else if (isNegative) {
8786
number *= -1;
8887
}
8988

@@ -92,4 +91,4 @@ export default function parseNumber(value, locale = "en", format = {}) {
9291
}
9392

9493
return number;
95-
}
94+
}

0 commit comments

Comments
 (0)