brojevi-u-tekst
v0.1.0
Published
A simple and robust library to convert numbers to Serbian words (pretvara brojeve u tekst). A perfect serbian-number-to-words utility.
Maintainers
Readme
Brojevi u tekst
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-tekstUsage
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 toNumber.MAX_SAFE_INTEGER(9,007,199,254,740,991).nullandundefinedare treated as0.
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
- Returns
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
