UNPKG

721 BJavaScriptView Raw
1'use strict';
2
3/**
4 * @param {string} value
5 * @returns {number|null}
6 */
7module.exports = (value) => {
8
9 value = value.replace(/^[^0-9\-–+]*/, ''); // replace all non numbers and non sign from the front
10 value = value.replace(/^–/, '-'); // replace long dash fot minus
11
12 const minus = value.indexOf('-') === 0;
13
14 value = value.replace(/[^0-9.,]/g, ''); // replace all non-number and non-dots and non-comma characters
15 value = value.replace(/,/g, '.'); // all comma to dots
16 value = value.replace(/\.(?=.*\.)/g, ''); // remove all dots but the last one
17
18 if (value.trim() === '') {
19 return null;
20 }
21
22 if (minus) {
23 value = `-${value}`;
24 }
25
26 return parseFloat(value);
27};