угловой разделитель тысяч для всех чисел на протяжении всего проекта - PullRequest
0 голосов
/ 04 марта 2019

Я использую Angular 6 и HTML 5 для создания адаптивной веб-страницы.

Я хочу отформатировать все переменные с типом "число", чтобы все отображаемые числа имели тысячи разделителей.

Вот так я реализую разделитель тысяч для каждого числа:

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

Можно ли указать этот формат только один раз, и он может автоматически использоваться для каждой переменной формата «число»,вместо указания на каждую отображаемую переменную?

1 Ответ

0 голосов
/ 15 июня 2019

Вы можете использовать угловую встроенную Десятичная труба

Вы также можете написать собственную трубу, например:

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;
    });

  }
}
...