创建货币格式化器Javascript输入

时间:2016-08-14 01:19:05

标签: javascript html

我四处搜寻,但找不到我一直在寻找的答案。我找到了一个用AngularJS实现的答案,但我不确定如何实现它。我创建了一个javascript函数,在用户输入时格式化输入字段。它将用于输入美元金额。其功能如下:

1)用户类型1:.1 - 非理想,希望它为0.01,但它在大多数情况下都有效 2)用户类型2:.12
3)用户类型5:1.25

我通过这段代码搞砸了并取得了预期的结果:

<script type="text/javascript">
function format_num(id) {
    var number = document.getElementById(id).value;
    number = number.replace(".","");
    number = number.replace(/\D/g, "");

    if (number.length == 0) {
     number = ""
     } else { 

        if (number.length <2) {
            number = [".", number].join('');
        } else {
            number = [number.slice(0, (number.length-2)), number.slice(number.length-2)].join('.');
        }
    }
        document.getElementById(id).value = number;
}
</script>

这在这里被称为:
<input class="number" name="balance" id="balance" value="" onkeyup="format_num(id)" />

我尝试将输入字段声明为“数字”类型,但我发现它在Chrome中有效,但不是Safari。唯一的缺点是当数字小于3位数时缺少“0.xx”(即:0.01或0.10)。这段代码可以安全使用吗?谢谢!

0 个答案:

没有答案