Skip to content

Commit 642c18d

Browse files
author
Andreas Pizsa
committed
support negative numbers
1 parent 0d26241 commit 642c18d

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

dist/parse-decimal-number.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@
3232
patternIndex = "" + thousands + decimal;
3333
pattern = patterns[patternIndex];
3434
if (!pattern) {
35-
pattern = patterns[patternIndex] = new RegExp('^\\s*((?:\\d{1,3}(?:\\' + thousands + '\\d{3})+)|\\d*)(?:\\' + decimal + '(\\d*))?\\s*$');
35+
pattern = patterns[patternIndex] = new RegExp('^\\s*(-?(?:(?:\\d{1,3}(?:\\' + thousands + '\\d{3})+)|\\d*))(?:\\' + decimal + '(\\d*))?\\s*$');
3636
}
3737
result = value.match(pattern);
3838
if (!result || result.length !== 3) {
3939
return NaN;
4040
}
4141
integerPart = result[1].replace(new RegExp("\\" + thousands, 'g'), '');
4242
fractionPart = result[2];
43-
number = parseFloat("" + integerPart + "." + fractionPart);
43+
number = parseFloat(integerPart + "." + fractionPart);
4444
return number;
4545
};
4646

dist/parse-decimal-number.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/parse-decimal-number.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module.exports = (value,inOptions)->
1818
patternIndex = "#{thousands}#{decimal}"
1919
pattern = patterns[patternIndex]
2020
if not pattern
21-
pattern = patterns[patternIndex] = new RegExp ('^\\s*((?:\\d{1,3}(?:\\' + thousands + '\\d{3})+)|\\d*)(?:\\' + decimal + '(\\d*))?\\s*$')
21+
pattern = patterns[patternIndex] = new RegExp ('^\\s*(-?(?:(?:\\d{1,3}(?:\\' + thousands + '\\d{3})+)|\\d*))(?:\\' + decimal + '(\\d*))?\\s*$')
2222

2323
result = value.match pattern
2424
return NaN if not result or result.length != 3

test/parse-decimal-number-test.coffee

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ describe 'parse-decimal-number',->
5757
it 'correctly parses normal floats with default options',->
5858
assert.strictEqual parseDecimalNumber('12345679.09'),12345679.09
5959

60+
it 'correctly parses negative floats with default options',->
61+
assert.strictEqual parseDecimalNumber('-12345679.09'),-12345679.09
62+
6063
it 'correctly parses all decimal formats',->
6164
testAllNumbers 999999999,true
6265

0 commit comments

Comments
 (0)