add: utf number formatter
This commit is contained in:
@@ -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 };
|
||||
Reference in New Issue
Block a user