@vicimpa/rubles — стоимость прописью
В российском документообороте принято писать сумму прописью. Такое должно быть в договорах, актах, расписках и других подобных документах. @vicimpa/rubles призван решить эту проблему комплексно, он работает в браузере и на серверной стороне.
Установить через npm:
$ npm i --save @vicimpa/rubles
Как использовать:
Просто подключаем и используем функцию format() =)
const { format } = require('@vicimpa/rubles');
format(10.12)
Функция format() первым аргументом принимает число в виде number или string и возвращает результат в виде string. Число в формате string может разделяться пробелами, табуляцией, нижним подчеркиванием (_) или тире (-).
const { format } = require('@vicimpa/rubles');
format("1_234.54")
format("1 421 234.43")
format("41-214.94")
Вторым аргументом функция может принять нужный Вам формат в виде string, в котором вставите строку с переменными в формате "$var1 $var2" (привет от бывшего phpШника =D). Чтобы написать вывод строки с большой буквы, используйте имя переменной с большой буквы =D. Ниже примеры значений. По умолчанию значение аргумента с форматом "$summString $summCurrency $pennyString $pennyCurrency":
const { format } = require('@vicimpa/rubles');
format(0)
format(10.12)
format("1_234.54")
format("1 421 234.43")
format("41-214.94")
format(123.12, "$input")
format(123.12, "$summ")
format(123.12, "$summString")
format(123.12, "$summCurrency")
format(123.12, "$penny")
format(123.12, "$pennyString")
format(123.12, "$pennyCurrency")
format(123.12, "$SummString")
format(123.12, "$SummCurrency")
format(123.12, "$PennyString")
format(123.12, "$PennyCurrency")
Дополнения:
Как и в любом деле, есть сопуствующий ущерб =). В данном случае в виде дополнительный функций.
Функция numberFormat() необходима для форматирования чисел по заданному формату.
Аргументы:
- input
string | number. Такой же как и в format()
- sep?
string. Разделитель числительного 1 000. По умолчанию пробел (' ')
- precision?
number. Точность отображения числа после запятой. По умолчанию 2
- dot?
string. Формат запятой. По умолчанию точка ('.')
Примеры:
const { numberFormat } = require('@vicimpa/rubles')
numberFormat(1000)
numberFormat(4123.12, "-")
numberFormat(1321.123, "/", 2)
numberFormat(135321.833, "_", 2, ",")
Функция joinWord() используется для соединения корня с одним из окончаний слова.
Аргументы:
- input
string[]. Набор из строк, где перая строка корень, остальные окончания.
- index?
number. Индекс окончания слова в массиве после корня. По умолчанию 0
Примеры:
const { joinWord } = require('@vicimpa/rubles')
joinWord(["пар","ней","ень","ня"], 0)
joinWord(["пар","ней","ень","ня"], 1)
joinWord(["пар","ней","ень","ня"], 2)
Функция counterWord() используется для правильного склонения по числительному.
Аргументы:
- input
string[]. Набор из строк, где перая строка корень, остальные окончания.
- counter
number. Число, к которому Вы хотите склонить существительное.
Примеры:
const { counterWord } = require('@vicimpa/rubles')
counterWord(["пар","ней","ень","ня"], 0)
counterWord(["пар","ней","ень","ня"], 1)
counterWord(["пар","ней","ень","ня"], 2)
counterWord(["пар","ней","ень","ня"], 4)
counterWord(["пар","ней","ень","ня"], 6)
counterWord(["пар","ней","ень","ня"], 10)
counterWord(["пар","ней","ень","ня"], 12)
counterWord(["пар","ней","ень","ня"], 11)
counterWord(["пар","ней","ень","ня"], 21)
counterWord(["пар","ней","ень","ня"], 32)
counterWord(["пар","ней","ень","ня"], 101)
Функция parseNumber() используется парсинга числа из строки и числа на 2 части.
Аргументы:
- input
number | string. Число, которое Вы хотите распарсить. Число может быть таким же, что и в format()
Примеры:
const { parseNumber } = require('@vicimpa/rubles')
parseNumber(1000)
parseNumber(0.123)
parseNumber("123.12")
parseNumber("1 520 . 34")
parseNumber("1_432_123")
Функция numbersInWords() используется для перевода числа в строковую транскрипцию.
Аргументы:
- input
number | string. Число, которое Вы хотите перевести. Число может быть таким же, что и в format(). Данная функция переводит только целую часть!
- com?
boolean. Если выставить true, то функция просклоняет младший числитель на первом разряде, а не на втором.
- upper?
boolean. Если выставить true, то первая буква строки будет заглавной.
Примеры:
const { numbersInWords } = require('@vicimpa/rubles')
numbersInWords(0)
numbersInWords(10.12)
numbersInWords("1_234.54")
numbersInWords("1 421 234.43")
numbersInWords("41-214.94")
numbersInWords(1)
numbersInWords(2)
numbersInWords(1, true)
numbersInWords(2, true)
numbersInWords("15213.28", false, true)
numbersInWords("12351.23", true, true)
Функция firstUpper() используется вывода в строке первой заглавной буквы.
Аргументы:
- input
string. Строка, над которой нужно произвести операцию.
Примеры:
const { firstUpper } = require('@vicimpa/rubles')
firstUpper("привет")
firstUpper("мой")
firstUpper("агА")
Там еще testFunction(), но мне так лень расписывать. Почитайте исходник тут а примеры тут
Нашли ошибку?
Пожалуйста, создайте тикет — https://github.com/vicimpa/rubles/issues
Авторы
Лицензия
Лицензия MIT, смотрите файл license.md.