Last active
July 27, 2022 13:33
-
-
Save amrza/c7e8471c5d07533e009557fb44c3c2e7 to your computer and use it in GitHub Desktop.
Convert numbers to FA/EN
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Convert English numbers to Persian. | |
* | |
* @param {string} value | |
* @return {string} converted string. | |
*/ | |
function faNumbers(value) { | |
var englishNumbers = { | |
'0': '۰', '1': '۱', '2': '۲', '3': '۳', '4': '۴', | |
'5': '۵', '6': '۶', '7': '۷', '8': '۸', '9': '۹' | |
}; | |
if (typeof value === "number") { | |
var value = value.toString(); | |
} | |
return value.split("").reduce(function(result, char) { | |
if (char in englishNumbers) { | |
return result + englishNumbers[char] | |
} | |
return result + char; | |
}, ""); | |
} | |
/** | |
* Convert Persian/Arabic numbers to English. | |
* | |
* @param {string} value | |
* @return {string} converted string. | |
*/ | |
function enNumbers(value) { | |
var persianNumbers = { | |
'۰': '0', '۱': '1', '۲': '2', '۳': '3', '۴': '4', | |
'۵': '5', '۶': '6', '۷': '7', '۸': '8', '۹': '9', | |
// in case you type with arabic keyboard: | |
'٠': '0', '١': '1', '٢': '2', '٣': '3', '٤': '4', | |
'٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9' | |
}; | |
return value.split("").reduce(function(result, char) { | |
if (char in persianNumbers) { | |
return result + persianNumbers[char] | |
} | |
return result + char; | |
}, ""); | |
} | |
var log = console.log; | |
log(enNumbers("٠١٢٣٤٥٦٧٨٩")); // arabic | |
log(enNumbers("۰۱۲۳۴۵۶۷۸۹.")); // persian | |
log(faNumbers("0123456789")); | |
log(faNumbers("a123.44.51n")); | |
log(faNumbers("1397/10/01")); | |
log(faNumbers("1397-03-25")); | |
log(faNumbers("600,000,000")); | |
log(faNumbers(1234567890)); // by int input. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@nainemom
toString is not needed for enNumbers(). the value that comes in enNumbers() is always a string. you cant have
(۱۲۳).toString()
. its always like "۱۲۳" in the first place...however, its needed for faNumbers(). the
(123).toString
is actually a possible value.and also, the || should be && in the first
if
. i upload a whole new script based on your solution:https://gist.github.com/amrza/9b5940b102286f9f37160b5e2b7e81a0