Fix number conversion
This commit is contained in:
parent
1f58da5d58
commit
625e7f9836
@ -82,8 +82,8 @@ export function* split(n: number, from: number = 2, to: number = 6) {
|
||||
|
||||
export function toNumber(value: any): number | undefined {
|
||||
const normalized = String(value)
|
||||
.replace('−', '-')
|
||||
.replace(/[^0-9-]/gi, '');
|
||||
.replace('\u2212', '\u002d') // minus to hyphen-minus
|
||||
.replace(/[^0-9\u002d]/g, '');
|
||||
const converted = Number(normalized);
|
||||
return isNaN(converted) ? undefined : converted;
|
||||
}
|
||||
|
25
tests/UtilsTest.ts
Normal file
25
tests/UtilsTest.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import { it, describe } from 'mocha';
|
||||
import { expect } from 'chai';
|
||||
import { getNumber } from '../src/utils';
|
||||
|
||||
describe('Utils', function() {
|
||||
it('Can parse positive number', function() {
|
||||
const text = '123';
|
||||
expect(getNumber(text)).to.be.equals(123);
|
||||
});
|
||||
|
||||
it('Can parse positive number with noise', function() {
|
||||
const text = ' 123 ';
|
||||
expect(getNumber(text)).to.be.equals(123);
|
||||
});
|
||||
|
||||
it('Can parse negative number', function() {
|
||||
const text = '-146';
|
||||
expect(getNumber(text)).to.be.equals(-146);
|
||||
});
|
||||
|
||||
it('Can parse negative number with minus sign', function() {
|
||||
const text = '\u2212132';
|
||||
expect(getNumber(text)).to.be.equals(-132);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user