AngularJS.00货币过滤器

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

我已从以下位置使用.00货币筛选器:

但是,如何调整过滤器以按逗号分割值

比如说,

而不是456789英镑 它应该显示:456789英镑

这是我做的一个扑克牌:

过滤器:

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:'&pound;' | _.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,我帖子的第一行:“这里有一种方法。”。当然还有很多其他的方法。。。这是一个:)