我创建了一个计算器,该计算器以特定的计算显示了节省的输出。我只需要用逗号格式化结果,并且要成为货币,因此在小数点之后不会显示所有数字。例如,结果是:
$ 2500.566695969我只希望它显示:$ 2,500.56
我希望这是有道理的,我尝试了几件事将逗号放在正确的位置,但没有任何效果。我对jQuery有些新,这是我第一次尝试这样的计算器。任何帮助都非常感谢。以下是我的代码。
function calculate() {
var savingsVal = (jQuery('#savingsVal').val());
var totalSavings = 0;
var regType = (jQuery('#reg-type').val());
if (filterValues(savingsVal)) {
totalSavings = savingsVal * 0.15 * 3 - regType * 3;
}
jQuery('#totalSavings').val('$' + totalSavings);
}
function filterValues(eVal) {
return true;
}
jQuery('.results-area').hide();
jQuery('#calculator').submit(function(e) {
e.preventDefault();
calculate();
jQuery('.results-area').show("slow");
jQuery(this).text( jQuery(this).submit().replace(/(d)(?=(ddd)+(?!d))/g, "$1,") );
});
这看起来有些令人讨厌,但下面是一个工作功能。
它接受包含一个数字的字符串。字符串是否包含'$'
都没关系。
它返回一个带有逗号格式的字符串,而没有前面的'$'
,但这很容易添加。
function toCurrency(str) {
let ret = parseFloat(str[0] === '$' ? str.substr(1) : str).toFixed(2).toString().replace(/B(?=(d{3})+(?!d))/g, ",");
if (!isNaN(ret))
return str;
return ret;
}
let elem = document.getElementById('money');
elem.innerHTML = '$' + toCurrency(elem.innerHTML);
<p id="money">$2500.566695969</p>
您可以在替换函数中尝试/(d)(?=(d{3})+(?!d))/g, "$1,"
而不是当前的正则义务。