使用toLocaleString进行自定义数字格式设置和后期处理

时间:2019-10-30 17:38:41

标签: javascript string algorithm formatting

我的任务是格式化数字:

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

我该如何改善?也许带有正则表达式或其他内容。

0 个答案:

没有答案