khmer-utils
v1.0.0
Published
A Khmer utility library for number formatting, currency conversion, date localization, transliteration, and text normalization.
Maintainers
Readme
Khmer Number & Currency Formatter 🛠🇰🇭
A lightweight utility library to help developers format numbers, currencies, and dates using Khmer Unicode, along with utilities for transliteration, normalization, and Khmer-specific input validation.
📦 Installation
Install via npm:
npm install khmer-utils📚 Features
- ✅ Convert Arabic numbers to Khmer numerals
- ✅ Format currency into Khmer Riel (
៛) orរៀល - ✅ Format
Dateobjects using Khmer digits - ✅ Normalize Khmer text (trim, reduce spaces, normalize Unicode)
- ✅ Transliterate Khmer script to Latin phonetics
- ✅ Validate Khmer phone numbers & national IDs
🛠 Usage
1. Importing
const {
formatNumber,
formatCurrency,
formatDate,
normalizeText,
khmerToLatin,
validateMobile,
validateLandline,
validateNationalID,
} = require("khmer-utils");🔢 formatNumber
Convert Arabic numbers to Khmer numerals.
formatNumber(12345); // "១២៣៤៥"
formatNumber("123,456.78"); // "១២៣,៤៥៦.៧៨"💵 formatCurrency
Format numbers as Khmer Riel currency.
formatCurrency(12345);
// Output: "១២,៣៤៥៛"
formatCurrency(12345.678, {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
currencySymbol: " រៀល",
});
// Output: "១២,៣៤៥.៦៨ រៀល"📅 formatDate
Format JavaScript Date objects into DD/MM/YYYY using Khmer digits.
formatDate(new Date(2023, 2, 15));
// Output: "១៥/៣/២០២៣"
formatDate(new Date(2025, 0, 1), { delimiter: "-" });
// Output: "១-១-២០២៥"🧹 normalizeText
Normalize Khmer or mixed-language text by:
- Removing extra spaces
- Lowercasing
- Unicode NFC normalization
normalizeText(" សួស្តី ពិភពលោក ");
// Output: "សួស្តី ពិភពលោក"🔤 khmerToLatin
Transliterate basic Khmer script to Latin characters.
khmerToLatin("កខគឃង");
// Output: "kkhggng"✅ Validators
validateMobile
validateMobile("+855-12-3456789"); // true
validateMobile("+855-123-456789"); // falsevalidateLandline
validateLandline("+855-23-123456"); // true
validateLandline("+855-23-12345"); // falsevalidateNationalID
validateNationalID("1234567890"); // true
validateNationalID("123456789"); // false🔒 License
MIT License
📝 Others
Feel free to reach out if you want to contribute or report issues!
- Fork this repo
- Create a new branch:
git checkout -b my-change - Make your changes
- Submit a pull request
🌐 Support & Community
If you find this useful for Khmer development or localization, please ⭐️ the repo and share it!
Created with ❤️ by Seavleu Heang
