function toFloat(localFloatStr) {
const commaCount = (localFloatStr.match(/,/g) || []).length;
const dotCount = (localFloatStr.match(/\./g) || []).length;
let normalized = localFloatStr;
if (commaCount && dotCount) {
if (localFloatStr.lastIndexOf(',') > localFloatStr.lastIndexOf('.')) {
normalized = localFloatStr.replace(/\./g, '').replace(',', '.');
} else {
normalized = localFloatStr.replace(/,/g, '');
}
} else if (commaCount) {
normalized = localFloatStr.replace(/\./g, '').replace(',', '.');
} else {
normalized = localFloatStr.replace(/,/g, '');
}
return parseFloat(normalized);
}
console.log(toFloat('1,224,533.533'));
console.log(toFloat('1.224.533,533'));
console.log(toFloat('2.354,67'));
console.log(toFloat('2,354.67'));
/*
run:
1224533.533
1224533.533
2354.67
2354.67
*/