jQuery输入框自动将DOT添加为Currency格式并且只允许数字

jQuery input box automatically add DOT into Currency format and only allow numeric

我的输入框的条件是只允许输入数字。添加数字时自动添加 DOT 作为货币格式,如下所示。

100 = 100
1000 = 1.000
10000 = 10.000
1000000 = 100.000
1000000 = 1.000.000


<input type="text" class="form-control" name="number_one" id="number_one" onkeypress="return event.charCode >= 48 && event.charCode <= 57" onkeyup="return CurrencyFormat(this.value)">

谁能指导我如何调用函数值。

我发现以下内容很有用,但 如何修改此功能以自动将点 添加到输入框值 以及仅允许数字的条件 .

function getNumberWithCommas(number) {
    return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}

谢谢。

不确定您要做什么,但要在元素值上调用函数,您可以设置 onchange 属性,但如果您已经有一个处理 onchange 和想将它与此功能集成,请也添加到您的问题中,我会相应地修改我的答案。

function CurrencyFormat(el) {
    let val = el.value.split('.').join('');
    el.value = val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
<input type="text" class="form-control" name="number_one" id="number_one" onkeypress="CurrencyFormat(this)" >

检查以下片段演示。

$('input.numberformat').keyup(function(event) {

  // skip for arrow keys
  if(event.which >= 37 && event.which <= 40) return;

  // format number
  $(this).val(function(index, value) {
    return value
    .replace(/\D/g, "")
    .replace(/\B(?=(\d{3})+(?!\d))/g, ".")
    ;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input class="numberformat">