【发布时间】:2014-07-07 12:19:42
【问题描述】:
我要求将十进制值格式化为美元格式(即每个十进制数都应在开头附加一个 $ 符号并在每 3 位数字后引入逗号。
例如:999999999 应转换为 $999,999,999.00 用于显示目的,而应保留原始值以供进一步计算。
self.MonthlyAppliedEmployerContributionAmount = ko.observable(MonthlyAppliedEmployerContribution);
self.MonthlyAppliedEmployerContributionAmountFormatted = ko.computed({
read: function () {
return '$' + parseFloat(self.MonthlyAppliedEmployerContributionAmount()).toFixed(2);
},
write: function (value) {
// Strip out unwanted characters, parse as float, then write the raw data back to the underlying "price" observable
value = parseFloat(value.replace(/[^\.\d]/g, ""));
self.MonthlyAppliedEmployerContributionAmount(isNaN(value) ? 0 : value); // Write to underlying storage
}
});
在阅读 observable 属性时,我在开头附加了 $ & .toFixed(2) 帮助我实现了限制 2 位小数。
但我不知道如何在每三个数字后引入逗号。
注意:在 KO 写入方法中,我将删除读取方法中引入的所有格式。
我不想使用 Jquery 掩码插件,因为它们中的大多数不是直接来自 Jquery lib,而是由一些第三方制作的,可能会在某个时间点中断。
感谢您的早期响应。
【问题讨论】:
标签: regex jquery-plugins knockout.js knockout-mapping-plugin knockout-validation