我有一个简单添加字段2和字段的脚本3,但因为我已将数字格式化为货币($x,xxx.xx
),所以field1返回NaN
。在进行计算之前,是否可以从数字中删除$
符号?我假设逗号和句号不会导致同样的问题。
onclick="document.getElementById('field1').value = (Math.round((parseFloat(document.getElementById('field2').value,2)*100))/100 + Math.round((parseFloat(document.getElementById('field3').value,2)*100))/100).toFixed(2);"
在点击计算按钮之前,我正在格式化添加的数字onblur="forA();"
(用户离开字段时):
function forA() {
document.getElementById('fieldY').value = "$" + addCommas1(document.getElementById('fieldZ').value);
}
function addCommas1(nStr) {
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
答案 0 :(得分:3)
在进行计算之前,只需删除所有非点/数字
var currency = "$2,358.88";
var number = Number(currency.replace(/[^0-9.]+/g,""));