Как разрешить немецкому пользователю вводить числа в немецком формате в React JavaScript

Мы разрабатываем приложение, которое должно поддерживать как немецких, так и английских пользователей.

Что мы можем сделать, чтобы позволить немецким пользователям вводить числа в немецком формате (в виде десятичной точки и. Как разделитель тысяч), и как только он выходит из поля ввода, мы должны быть в состоянии преобразовать введенный текст в число JavaScript, прямо сейчас, когда мы используем функцию Number(), это дает нам NaN для Number("12,23")

Мы можем конвертировать текст на английском языке в немецком формате, используя новые Intl.NumberFormat() но мы хотим наоборот.

1 ответ

Решение

Вы могли бы использовать locale.js локали http://numeraljs.com/

// load a locale
numeral.register('locale', 'de', {
    delimiters: {
        thousands: '.',
        decimal: ','
    },
    abbreviations: {
        thousand: 'k',
        million: 'm',
        billion: 'b',
        trillion: 't'
    },
    ordinal : function (number) {
        return number === 1 ? 'er' : 'ème'; //this is taken from french example, don't know in german
    },
    currency: {
        symbol: '€' //same as above
    }
});

// switch between locales
numeral.locale('de');

console.log(numeral('123,45').value());
console.log(numeral('6.123,45').value());
console.log(numeral('123,45m').value());
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>

Другие вопросы по тегам