我四处搜寻,但找不到我一直在寻找的答案。我找到了一个用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)。这段代码可以安全使用吗?谢谢!