要浮动的JavaScript格式输入值

JavaScript format input values to float

本文关键字:格式 输入 JavaScript      更新时间:2023-09-26

我想将不同的输入值转换为浮点值,无论它们的输入格式如何。

例如,这些值:

€ 1500000
€ 1.500.000
1500000
1.500.000

应全部转换为具有两个小数的浮点类型,例如1500000.00

虽然我可以成功地去除欧元符号,也可以去除空白,但我无法将1.500.000转换为1500000.00

这就是我目前所拥有的:

var propertyValue2 = $scope.Data.PropertyCost.match(numberPattern);
propertyValue2 = $.trim($scope.Data.PropertyCost).replace(/€/g, '');
propertyValue2 = parseFloat(propertyValue2);
propertyValue2 = propertyValue2.toFixed(2);
console.log(propertyValue2);

我如何才能达到我想要的结果?

使用正则表达式只匹配数字:

var test = [
  '€ 1500000',
  '€ 1.500.000',
  '1500000',
  '1.500.000'
]
for (var i = 0; i < test.length; i++) {
  console.log(
    test[i],
    'evaluate to',
    parseFloat(test[i].toString().replace(/'D/g, '')).toFixed(2)
  )
}

如果没有点作为小数分隔符,可以稍微更改正则表达式。

var propertyValue2 = '€ 12.000.123';
propertyValue2 = propertyValue2.trim().replace(/[€.]/g, '');
propertyValue2 = +propertyValue2;
propertyValue2 = propertyValue2.toFixed(2);
console.log(propertyValue2);