В любом документообороте принято писать сумму прописью. Такое должно быть в договорах, актах, расписках и других подобных документах. multi-rubles.js призван решить эту проблему комплексно, он работает в браузере и на серверной стороне.
Установить через npm
$ npm i --save multi-rubles
var rubles = require('multi-rubles').rubles;
var text = rubles(12.10, [['рубль', 'рубля', 'рублей'], ['копейка', 'копейки', 'копеек']]);
console.log(text); // двенадцать рублей 10 копеек
var text = rubles(12.10, [['доллар', 'доллара', 'долларов'], ['цент', 'цента', 'центов']]);
console.log(text); // двенадцать долларов 10 центов
var text = rubles("52151,31", [['рубль', 'рубля', 'рублей'], ['копейка', 'копейки', 'копеек']]);
console.log(text); // пятьдесят две тысячи сто пятьдесят один рубль 31 копейка
Установить через bower
$ bower install multi-rubles --save
<script src="bower_components/multi-rubles/lib/rubles.min.js"></script>
<script>
var rubles = require('multi-rubles').rubles;
var text = rubles(12.10, [['рубль', 'рубля', 'рублей'], ['копейка', 'копейки', 'копеек']]);
console.log(text); // двенадцать рублей 10 копеек
var text = rubles(12.10, [['доллар', 'доллара', 'долларов'], ['цент', 'цента', 'центов']]);
console.log(text); // двенадцать долларов 10 центов
var text = rubles("52151,31", [['рубль', 'рубля', 'рублей'], ['копейка', 'копейки', 'копеек']]);
console.log(text); // пятьдесят две тысячи сто пятьдесят один рубль 31 копейка
</script>
Пожалуйста, создайте тикет — https://github.com/meritt/multi-rubles/issues
Для запуска тестов обновите репозиторий и запустите:
$ npm test
Лицензия MIT, смотрите файл license.md
.