gpt4 book ai didi

javascript - 如何使用 JQuery 向货币添加小数点和尾随零?

转载 作者:行者123 更新时间:2023-11-28 04:42:30 25 4
gpt4 key购买 nike

我已检查了所有相关问题,但没有一个问题能够完整解决我的问题。我知道如何使用符号和逗号转换为货币,但不知道如果用户未指定分,如何添加尾随零。

我确实遇到过一篇文章提到添加这个 .toFixed(2) 但我不明白如何将其合并到我的函数中。

所需的函数是将 14578 转换为 $14,578.00,但如果数字是 14578.79 到 $14,578.79,则不要添加零。我还注意到,即使留空,它也会在字段中放置一个美元符号。有什么办法可以避免这种情况吗?

$('.money').blur(function(e){        
$(this).val(formatCurrency(this.value.replace(/[,$]/g,'')));
}).on('keypress',function(e){
if(!$.isNumeric(String.fromCharCode(e.which))) e.preventDefault();
}).on('paste', function(e){
var cb = e.originalEvent.clipboardData || window.clipboardData;
if(!$.isNumeric(cb.getData('text'))) e.preventDefault();
});
function formatCurrency(number){
var n = number.split('').reverse().join("");
var n2 = n.replace(/\d\d\d(?!$)/g, "$&,");
return '$' + n2.split('').reverse().join('');
}
input {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' class="money"/>
<input type='text'/>
<input type='text' class="money"/>
<input type='text'/>
<input type='text' class="money"/>
<input type='text'/>
<input type='text' class="money"/>
<input type='text'/>

谢谢!

最佳答案

为了防止插入空“$”,您需要检查数字是否为空并返回该函数。这是为您提供的解决方案。您还需要允许“。”在您的按键中允许用户添加美分。

$('.money').blur(function(e){
if($(this).val() == "") return;
$(this).val(formatCurrency(this.value.replace(/[,$]/g,'')));
}).on('keypress',function(e){
if(String.fromCharCode(e.which) != "." && !$.isNumeric(String.fromCharCode(e.which))) e.preventDefault();
}).on('paste', function(e){
var cb = e.originalEvent.clipboardData || window.clipboardData;
if(!$.isNumeric(cb.getData('text'))) e.preventDefault();
});
function formatCurrency(number){
if(number == "") return;
number = parseFloat(number).toFixed(2);
var n = number.split('').reverse().join("");
console.log(n);
var n2 = n.replace(/\d\d\d(?!$)/g, "$&,");
return '$' + n2.split('').reverse().join('');
}

在这里检查 jsFiddle:https://jsfiddle.net/7scapsk9/

关于javascript - 如何使用 JQuery 向货币添加小数点和尾随零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43645406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com