Пользовательское форматирование чисел с помощью toLocaleString и постобработка - PullRequest
0 голосов
/ 30 октября 2019

У меня была задача форматировать числа следующим образом:

1000000 -> 1 000 000, 00

Мое решение очень искажено:

  public transform(value: number | string, locale: string = 'ru-RU'): string {
    if (value == null) { return null; }

    const number = typeof value === 'number'
      ? value
      : parseFloat(value);

    let result = number.toLocaleString(locale, this.options);
    if (result.indexOf(',') !== -1) {
      const arr = result.split(',');
      if (arr[1].length === 1) {
        arr[1] += '0';
      }
      result = arr[0] + ', ' + arr[1].slice(0, 2);
    } else {
      result += ', 00';
    }

    return result;
  }

Как мне его улучшить? Может быть с регулярным выражением или что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...