将粘贴值复制到输入字段时,限制小数点后 3 位数字不起作用

Restricting 3 figures after the decimal places is not working when copy paste value into the input field

我成功地限制了小数点后的 3 位数字,但是当我将一些随机小数位复制粘贴到文本字段中时,修复不起作用。

$('.min-val').on('keyup', function(e) {
  $(this).val($(this).val().replace(/[^\d.]/g, ''));
  if ($(this).val().indexOf(".") > -1 && ($(this).val().split('.')[1].length > 3)) {
    $(this).val($(this).val().substring(0, $(this).val().length - 1));
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="min val" class="min-val" />

如何在复制粘贴数据时将小数位数限制为 3?

您可以使用正则表达式本身来实现。虽然我不擅长。
所以下面的解决方法。 您可以确定 trim 的字符数并使用该数字
var charsToTrim = $(this).val().split('.')[1].length - 3;

$('.min-val').on('keyup', function(e) {
  $(this).val($(this).val().replace(/[^\d.]/g, ''));
  if ($(this).val().indexOf(".") > -1 && ($(this).val().split('.')[1].length > 3)) {
    var charsToTrim = $(this).val().split('.')[1].length - 3;
    $(this).val($(this).val().substring(0, $(this).val().length - charsToTrim));
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="min val" class="min-val" />