add: utf number formatter

This commit is contained in:
Mahyar Khanbolooki
2025-07-27 17:43:35 +03:30
parent b9ee1a892e
commit 83cbe43d0e
+70
View File
@@ -0,0 +1,70 @@
// Latin Digits (English)
const latinDigits = [
'\u0030', // 0
'\u0031', // 1
'\u0032', // 2
'\u0033', // 3
'\u0034', // 4
'\u0035', // 5
'\u0036', // 6
'\u0037', // 7
'\u0038', // 8
'\u0039' // 9
];
// Arabic Digits
const arabicDigits = [
'\u0660', // ٠
'\u0661', // ١
'\u0662', // ٢
'\u0663', // ٣
'\u0664', // ٤
'\u0665', // ٥
'\u0666', // ٦
'\u0667', // ٧
'\u0668', // ٨
'\u0669' // ٩
];
// Persian Digits
const persianDigits = [
'\u06F0', // ۰
'\u06F1', // ۱
'\u06F2', // ۲
'\u06F3', // ۳
'\u06F4', // ۴
'\u06F5', // ۵
'\u06F6', // ۶
'\u06F7', // ۷
'\u06F8', // ۸
'\u06F9' // ۹
];
/**
*
* @param n latin/arabic numbers
* @returns persian numbers
*/
function ef(n: string | number) {
return n.toString().split("").map(c => persianDigits[latinDigits.indexOf(c)] || persianDigits[arabicDigits.indexOf(c)] || c).join("");
};
/**
*
* @param n latin/persian numbers
* @returns arabic numbers
*/
function ea(n: string | number) {
return n.toString().split("").map(c => arabicDigits[latinDigits.indexOf(c)] || arabicDigits[persianDigits.indexOf(c)] || c).join("");
};
/**
*
* @param n persian/arabic numbers
* @returns latin numbers
*/
function ue(n: string | number) {
return n.toString().split("").map(c => latinDigits[persianDigits.indexOf(c)] || latinDigits[arabicDigits.indexOf(c)] || c).join("");
};
export { ef, ea, ue };