我想将不同的输入值转换为float,无论它们输入的格式如何。
例如,这些值:
€ 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);
我有什么机会可以达到我正在寻找的结果。
谢谢,Laziale
答案 0 :(得分:0)
我没有点作为小数分隔符,你可以稍微改变正则表达式。
var propertyValue2 = '€ 12.000.123';
propertyValue2 = propertyValue2.trim().replace(/[€.]/g, '');
propertyValue2 = +propertyValue2;
propertyValue2 = propertyValue2.toFixed(2);
console.log(propertyValue2);
答案 1 :(得分:0)
使用正则表达式仅匹配数字:
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)
)
}
&#13;