Как разрешить немецкому пользователю вводить числа в немецком формате в 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>