gpt4 book ai didi

javascript - 使用 jQuery/JS 键入时使用 1000 分隔符和 2 个小数位格式化货币输入?

转载 作者:行者123 更新时间:2023-11-30 09:24:44 24 4
gpt4 key购买 nike

我有一个文本输入,我希望它在输入一个允许 2 个小数位和 1000 个分隔符的值时对其进行格式化。它应该只允许数字。我做了以下但它不允许添加小数点。简单来说就是输入商品(货币)的价格。

INPUT = 1234560ABC.5665 (should only allow numbers)

EXPECTED = 1,234,560.56 (should limit decimal places to 2)

我已经完成了以下操作,但不知道如何添加小数值后跟“.”。固定 ","1000 个分隔符。

<input type="text" id="price" name="price" />

$('#price').keyup(function (event) {
$(this).val(function (index, value) {
return '$' + value.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
});

最佳答案

我的解决方案使用连续的 .replace

  1. .replace(/(?!\.)\D/g, "")删除除 . 之外的所有非数字字符
  2. .replace(/(?<=\..*)\./g, "")删除所有额外的 .除了第一个 .
  3. .replace(/(?<=\.\d\d).*/g, "")删除小数点后两位数
  4. .replace(/\B(?=(\d{3})+(?!\d))/g, ",")在适当的地方插入逗号

我修改了事件以将输入字段的所有更改解释为 .on('change click keyup input paste'

片段:

$('#price').on('change click keyup input paste',(function (event) {
$(this).val(function (index, value) {
return '$' + value.replace(/(?!\.)\D/g, "").replace(/(?<=\..*)\./g, "").replace(/(?<=\.\d\d).*/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="price" name="price" />

关于javascript - 使用 jQuery/JS 键入时使用 1000 分隔符和 2 个小数位格式化货币输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49623849/

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