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 {
|
export function toNumber(value: any): number | undefined {
|
||||||
const normalized = String(value)
|
const normalized = String(value)
|
||||||
.replace('−', '-')
|
.replace('\u2212', '\u002d') // minus to hyphen-minus
|
||||||
.replace(/[^0-9-]/gi, '');
|
.replace(/[^0-9\u002d]/g, '');
|
||||||
const converted = Number(normalized);
|
const converted = Number(normalized);
|
||||||
return isNaN(converted) ? undefined : converted;
|
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