用两位小数点后的数字替换字符串重复

时间:2019-03-14 12:51:38

标签: javascript jquery

我正在使用数据表,在单击分页按钮后将添加总和。 帮助表示赞赏。提前致谢 每当我单击按钮时,都会添加相同的数字。如已经存在。例如,我想要的是23.2323.23,请保留23.23并在此之后删除

$("#btn").click(function() {
  $("label").text($("label").text().replace(/[0-9]{2}\.[0-9][0-9]$/g, ''));
  $("label").append("55")
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Total amount:23.2323.233</label>
<button id=btn>Click</button>

4 个答案:

答案 0 :(得分:1)

尝试

parseFloat('23.2323.233').toFixed(2)

答案 1 :(得分:1)

让我们先看看您的尝试。 您使用/[0-9]{2}\.[0-9][0-9]$/g来搜索模式。 它表示两位数,后跟点,再加上两位数($表示它应该以它结尾。例如23.23),这肯定不是您要查找的模式。

您要查找的模式是digits.digits.digits.digits ...

如果您使用正则表达式digits(.digits)+表示它,则会导致/[0-9]+(\.[0-9]+)+

因此最终代码应为:

$("label").text($("label").text().replace(/[0-9]+(\.[0-9]+)+/g, ''));

编辑:

$("label").text($("label").text().replace(/[0-9]+(\.[0-9]+)+/g, $("label").text().match(/([0-9]+)\.[0-9]{2}/)[0]));

答案 2 :(得分:1)

我认为您想在添加新值之前完全删除标签中显示的先前数字值。

因此,您只想保留Total amount:。然后在分页后附加从DataTable获得的值...

.split()方法又如何呢?
它基于“ sepearator”创建一个数组。

在您的情况下,我将使用:字符并保留第一个数组项。
请注意,您必须重新添加: ...

$("#btn").click(function() {
  var value_from_DT = 55.72;
  $("label").text($("label").text().split(":")[0]+":");
  $("label").append(value_from_DT)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Total amount:23.23</label>
<button id="btn">Click</button>

另一种方式,最好,是专门为数字值设置专用的span

$("#btn").click(function() {
  var value_from_DT = 55.72;
  $("#DT_sum").text(value_from_DT);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Total amount:<span id="DT_sum">23.23</span></label>
<button id="btn">Click</button>

答案 3 :(得分:0)

(我不太清楚你的问题。) 如果要从标签中删除字符串,请执行此操作

$("label").empty().append("55")