如何在浏览器中确定当前区域设置的十进制和千位分隔符?

时间:2017-02-09 18:18:58

标签: javascript reactjs localization react-intl

我们正在使用react-react的反应,并且需要编写我们自己的自定义输入字段。虽然可以将一个数字传递给react-intl API并使数字格式化得正确,但我们怎样才能找出千位分隔符和小数点之类的当前语言环境字符?

1 个答案:

答案 0 :(得分:0)

您可以在react-intl's注入intl对象上访问Intl.NumberFormatter's formatToParts方法。

import React, { Component } from 'react';
import { injectIntl, intlShape } from 'react-intl';

class MyComponent extends Component {
    static propTypes = {
        intl: intlShape.isRequired,
    };

    render() {
        const parts = this.props.intl.formatters
            .getNumberFormat(this.props.intl.locale)
            .formatToParts(9999.99);

        return (
            <div>
                <div>
                    Decimal point:
                    {parts.find(i => i.type === 'decimal').value}
                </div>
                <div>
                    Thousands separator:
                    {parts.find(i => i.type === 'group').value}
                </div>
            </div>
        );
    }
}

export default injectIntl(MyComponent);

虽然这不是我想要的解决方案,但它是迄今为止我发现的最好的,至少你不会猜测每个角色的数字部分是什么。