JSPM

brojevi-u-tekst

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q60016F
  • License MIT

A simple and robust library to convert numbers to Serbian words (pretvara brojeve u tekst). A perfect serbian-number-to-words utility.

Package Exports

  • brojevi-u-tekst

Readme

Brojevi u tekst

npm version npm downloads License: MIT

A lightweight, zero-dependency TypeScript library for converting numbers to Serbian words.

Handles Serbian grammatical cases, gender agreement, and plural forms correctly.

Installation

npm install brojevi-u-tekst

Usage

import brojeviUTekst from 'brojevi-u-tekst';

brojeviUTekst(12345);
// "dvanaest hiljada trista četrdeset pet"

brojeviUTekst(21000);
// "dvadeset jedna hiljada"

brojeviUTekst(-99);
// "minus devedeset devet"

Examples

Input Output
0 nula
19 devetnaest
-42 minus četrdeset dva
100 sto
400 četiristo
1000 hiljadu
2000 dve hiljade
5000 pet hiljada
21000 dvadeset jedna hiljada
123456 sto dvadeset tri hiljade četiristo pedeset šest
1000000 jedan milion
2000000 dva miliona
11000000 jedanaest miliona
1000000000 jedna milijarda
2000000000 dve milijarde
1000000000000 jedan bilion
1234567890 jedna milijarda dvesta trideset četiri miliona petsto šezdeset sedam hiljada osamsto devedeset
Infinity Neispravan unos
NaN Neispravan unos
> MAX_SAFE Broj je prevelik za preciznu konverziju.

API

brojeviUTekst(num: number): string

Converts a number to its Serbian word representation.

Parameters:

  • num (number) - The number to convert. Supports positive and negative integers up to Number.MAX_SAFE_INTEGER (9,007,199,254,740,991). null and undefined are treated as 0.

Returns:

  • (string) - The Serbian word representation
    • Returns "nula" for 0, null, or undefined
    • Returns "Neispravan unos" for non-finite numbers (Infinity, NaN) or invalid types
    • Returns "Broj je prevelik za preciznu konverziju." for numbers exceeding MAX_SAFE_INTEGER

Features

  • ✅ Correct Serbian grammar for all denominations:
    • hiljadu/hiljade/hiljada (thousands)
    • milion/miliona (millions)
    • milijarda/milijarde/milijardi (billions)
    • bilion/biliona (trillions)
  • ✅ Gender agreement for feminine nouns (jedan→jedna, dva→dve for thousands and billions)
  • ✅ Support for numbers up to Number.MAX_SAFE_INTEGER (~9 quadrillion)
  • ✅ Negative number support (prepends "minus")
  • ✅ Proper handling of edge cases (zero chunks, teens, invalid inputs)
  • ✅ Zero dependencies
  • ✅ Fully typed (TypeScript)

License

MIT