如何仅使用jQuery动态地将数字格式化为American Currency?

时间:2015-11-19 02:14:21

标签: jquery regex dynamic currency autoformat

我正在构建一个表单,我需要一个文本框,用户可以在其中输入价格或费用。

我看过一个可以做我正在寻找的表格,但我不知道该怎么做。我正在寻找的是,默认情况下,文本框包含$ 0.00。当用户开始键入数字时,其操作如下:12345678以0.01>开始。 0.12> 1.23> ---> $ 123,456.78

它需要在需要时自动添加逗号和分数的句点,只允许在句号的右侧有2位数字。

还需要阻止输入除逗号和句点以外的非数字字符的能力。因此,如果用户键入" a"而不是" a"显示然后突然删除,我甚至不希望能够看到" a"。

1 个答案:

答案 0 :(得分:0)

我首先建议<input type="number"/>将输入限制为仅限数字。接下来,这里有正则表达式来处理两个小数位和逗号。

var money = number.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');

number是你在密钥上获得的数字。这在调用输入时应该有效。

$('input[type="number"]').on('keyup', function(e){
    var number = Number($(this).val());
    var money = number.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
    $(this).val(money);
});

这部分只是一个开始。您需要输入一些条件。例如,您可能需要检查在允许更改之前按下的键。您可以通过检查keycodes来完成此操作。