使用react-intl进行数字格式设置

时间:2017-12-12 14:33:59

标签: reactjs typescript react-intl

我想格式化'milage'号码(以公里为单位)。因此,值{45000}应显示为45.000 km.

这可能吗?

标记

<p>{ intl.formatNumber(45000, mileageFormat) }</p>

格式选项

const mileageFormat: any = {
  style: '',
  // currency: 'km.',
  // currencyDisplay: 'dkk',
  // format: ''
}

我考虑使用'currency'属性在数字后面显示km.,但是当然它不起作用km.不是货币!

我还考虑过使用format属性,但找不到任何关于如何使用它的文档......(https://github.com/yahoo/react-intl/wiki/API#formatjs-internationalization-formatters

2 个答案:

答案 0 :(得分:0)

这应该按照您的要求格式化数字。我确信有更好的解决方案,但在此期间,这应该可以为您提供所需的解决方案。

formatNumber(val) {
    const value = val.toString();
    return `${value.substring(0, value.length - 3)}.${value.substring(value.length - 3, value.length)} km`;
}

render() {
    return (
      <div>
        <p>{this.formatNumber(45000)}</p>
      </div>
    );
}

答案 1 :(得分:0)

我使用了intl.formatNumber,它给了我所需的东西:

formatNumber(1000); // "1,000"

然后我可以将km.包含在“ defaultMessage”中,并让翻译人员进行更改。

来源:https://github.com/yahoo/react-intl/wiki/API#number-formatting-apis