AngularJS.00货币过滤器
我已从以下位置使用.00货币筛选器: 但是,如何调整过滤器以按逗号分割值 比如说, 而不是456789英镑 它应该显示:456789英镑 这是我做的一个扑克牌: 过滤器:AngularJS.00货币过滤器,angularjs,angularjs-scope,angular-filters,Angularjs,Angularjs Scope,Angular Filters,我已从以下位置使用.00货币筛选器: 但是,如何调整过滤器以按逗号分割值 比如说, 而不是456789英镑 它应该显示:456789英镑 这是我做的一个扑克牌: 过滤器: app.filter('myCurrency', ['$filter', function ($filter) { return function(input) { input = parseFloat(input); if(input % 1 === 0) { input = input.to
app.filter('myCurrency', ['$filter', function ($filter) {
return function(input) {
input = parseFloat(input);
if(input % 1 === 0) {
input = input.toFixed(0);
}
return '£' + input;
};
}]);
以下是一种方法:
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,");
};
}]);
编辑
更新了过滤器,改为使用正则表达式。由于您可以链接过滤器,因此可以使用类似于
\uuuu.str的过滤器:
My value with currency trimming filter:{{myValue | currency:'£;'| |.str:'trim':['.00']}
结果:
// My value with currency trimming filter: £242,737
如果你计划支持不同国家所代表的货币,那么如果有逗号的话,“由于货币的L18N能力而不是一个点,你可以考虑一个最终版本,包括:
<p>My value with currency trimming filter: {{ myValue | currency:'£' | _.str: 'trim':['.00'] | _.str: 'trim':[',00'] }}</p>
My value with currency trimming filter:{{myValue | currency:'£;'| |.str:'trim':['.00']| |.str:'trim':[',00']}
谢谢,但请看看将myValue更改为10000时会发生什么。。。过滤器的结果为10.0英镑。这绕过了Angular货币过滤器的i18n功率。这是一个相当复杂的解决方案。@Plantface,我帖子的第一行:“这里有一种方法。”。当然还有很多其他的方法。。。这是一个:)