项目中所有数字的角千位分隔符

时间:2019-03-04 11:22:10

标签: angular html5 number-formatting separator

我正在使用Angular 6和HTML 5创建响应式网页。

我想格式化所有类型为“数字”的变量,以便所有显示的数字都具有千位分隔符。

这是我在每个数字上实现千位分隔符的方式:

const num = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');

有没有一种方法,我只能指定一次这种格式,并且可以自动将其用于每个“数字”格式变量,而不是在我显示的每个变量中都指定它?

1 个答案:

答案 0 :(得分:0)

您可以使用内置的Angular Decimal pipe

您还可以像这样编写自定义管道:

import { Pipe, PipeTransform }     from '@angular/core';

@Pipe({name: 'seprator'})
export class Seprator implements PipeTransform {
  
  constructor() {

  }

  transform(value: string, unit: string): string {

    if(value == undefined)
    {
        return '';
    }
    let n = parseInt(value);

    const rx =  /(\d+)(\d{3})/;
    return String(n).replace(/^\d+/, function (w) {
        var res = w;
        while (rx.test(res)) {
            res = res.replace(rx, '$1٬$2');
        }
        return res;
    });

  }
}