gpt4 book ai didi

javascript - trim 尾随零不太有效

转载 作者:行者123 更新时间:2023-12-03 12:13:55 25 4
gpt4 key购买 nike

我在页面上有一些小数点后 4 位的价格。有些产品的价格精确到小数点后 4 位,有些则只有 2 位。

目前,我们的网站设置为每种产品显示 4 位小数,我必须使用 JavaScript 来降低那些非 2 位小数的产品的价格。

所以我的价格是这样的......

0.1234英镑

1.1000 英镑

10.9900 英镑

100.0000 英镑

我有以下 javascript,对于小数点后数字大于 1 的价格可以正常工作,但对于小数点后只有 0 的价格则失败...

$.each($("#mydiv"),function(){
var price = $(this).text().replace("£","");
var number = parseFloat(price);
var integerPart = number.toString().split(".")[0] == 0 ? 0: number.toString().split(".")[0].length;
var decimalPart = number.toString().split(".")[1].length;
if(decimalPart > 2){
$(this).text("£" + number.toPrecision(integerPart + decimalPart));
}else{
$(this).text("£" + number.toPrecision(integerPart + 2));
}
});

失败的是像 100.0000 英镑这样的价格 - 我希望价格显示如下 - 没有四舍五入...

0.1234英镑

1.10英镑

10.99英镑

100英镑

最佳答案

如果前面的字符是小数点后跟另外两位数字,则只需使用正则表达式删除任何尾随零:

$('.myClass').text(function(_, t) {
return t.replace(/(\.\d\d)00$/, '$1');
});

注意:您不能使用重复的元素 ID,因此您的 $.each 调用应该没有实际意义。如果确实有多个字段需要执行此操作,请使用类而不是 ID 来标记它们。上面代码中的 .text 调用将自动处理多个元素。

编辑如果你确实无法升级 jQuery:

$('.myClass').each(function() {
var $this = $(this);
var text = $this.text();
text = text.replace(/(\.\d\d)00$/, '$1');
$this.text(text);
});

关于javascript - trim 尾随零不太有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823362/

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