JavaScript 将输入值格式化为浮点数
JavaScript format input values to float
我想将不同的输入值转换为浮点数,而不管它们的输入格式如何。
例如,这些值:
€ 1500000
€ 1.500.000
1500000
1.500.000
应该全部转换成带两位小数的float类型,例如1500000.00
虽然我能够成功去除欧元符号并去除白色 space,但我无法将 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 propertyValue2 = '€ 12.000.123';
propertyValue2 = propertyValue2.trim().replace(/[€.]/g, '');
propertyValue2 = +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)
)
}
我想将不同的输入值转换为浮点数,而不管它们的输入格式如何。
例如,这些值:
€ 1500000
€ 1.500.000
1500000
1.500.000
应该全部转换成带两位小数的float类型,例如1500000.00
虽然我能够成功去除欧元符号并去除白色 space,但我无法将 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 propertyValue2 = '€ 12.000.123';
propertyValue2 = propertyValue2.trim().replace(/[€.]/g, '');
propertyValue2 = +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)
)
}