【发布时间】:2015-04-22 22:06:02
【问题描述】:
在 Javascript / AngularJS 中执行以下操作的最佳方法是什么?
我有一个输入框和一个软数字 10 键(按钮)。
而不是让用户输入“。”在键盘上或按“。”在软垫上,输入应假定 2 位或更少的数字是小数
User Enters:
1 = 0.01
2 = 0.12
3 = 1.23
.00 = 123.00
它需要能够处理混合键盘和软键输入。 用户可以按“。”物理数字键盘上的键。软小键盘只有 0 和 .00,没有“.”。键。
退格键会从右边删除 1 个数字。 100.50 然后单击退格应该产生 10.50,而不是 100.5
“固定小数”的优点是不需要输入“.”,这比在右侧的快速现金按钮之外输入整数要常见得多。
货币格式输入框中的值是一项要求,但超出了此特定问题的范围。 (考虑使用 ng-currency 或 numbrojs(因为 ng-currency 将模型存储为浮点数)。
我目前正在解决这个问题:
function concatNumber(num)
{
if (vm.transaction.paymentAmount === undefined || vm.transaction.paymentAmount === 0 || vm.transaction.paymentAmount === '')
{
vm.transaction.paymentAmount = '0.0' + num;
return;
}
}
【问题讨论】:
-
您是否尝试过任何方法来实现这一目标?
-
是的,我现在正在处理它,我编辑了我的问题以包括我到目前为止的内容。
-
快速思路:将输入字符串视为美分数,然后将美分数除以 100 后格式化为小数点后两位。
-
@ryanyuyu 谢谢,我没想到。我正要写一堆正则表达式。
-
@Robert 我在 C# 中看到了一个类似的问题(或者它是 Java 吗?)。我会提供一个链接,但我找不到它。无论如何,祝你好运。
标签: javascript angularjs currency