我使用了来自AngularJS currency filter: can I remove the .00 if there are no cents in the amount?
的.00货币过滤器但是,我如何调整过滤器以用逗号分隔值?
例如,
而不是£456789 它应该显示:£456,789
这是我做的一个傻瓜:http://plnkr.co/edit/uDFWkPAmc7PrgDwHPDho?p=preview
过滤器:
app.filter('myCurrency', ['$filter', function ($filter) {
return function(input) {
input = parseFloat(input);
if(input % 1 === 0) {
input = input.toFixed(0);
}
return '£' + input;
};
}]);
答案 0 :(得分:1)
由于您可以链接过滤器,因此您可以使用类似_.str
修剪过滤器的内容:
<p>My value with currency trimming filter: {{ myValue | currency:'£' | _.str: 'trim':['.00'] }}</p>
结果:
// My value with currency trimming filter: £242,737
如果您计划支持不同国家/地区代表的货币,以防万一有逗号,&#39;,&#39;由于货币的l18n功能而不是点,你可以考虑包括两者的最终版本:
<p>My value with currency trimming filter: {{ myValue | currency:'£' | _.str: 'trim':['.00'] | _.str: 'trim':[',00'] }}</p>
答案 1 :(得分:0)
这是一种方法:
app.filter('myCurrency', ['$filter', function ($filter) {
return function(input) {
input = parseFloat(input);
if(input % 1 === 0) {
input = input.toFixed(0);
}
return '£' + (''+input).replace(/(\d)(?=(\d{3})+($|\.))/g, "$1,");
};
}]);
更新过滤器以改为使用正则表达式。