Ali*_*ahi 5 javascript converter
我正在寻找将数字转换为阿拉伯语单词的 JavaScript 函数
例如
- 23 > ????? ??????
- 53 > ????? ??????
- .... > ....
我找到了一些解决方案,但都是 .net
我在网上搜索过,但找不到任何解决方案(好吧,我在用阿拉伯语搜索时无法理解;))
下面提供的 Javascript 函数将货币值转换为完整的阿拉伯语单词,同时考虑到计数主题(男性或女性)的正确阿拉伯语法规则以及各种类型数字的阿拉伯字符串的正确位置。
\n该函数内置 tanween,可以根据需要直接在所需的数字和货币名称/国家名称单词中添加 tanween。
\n在许多转换代码中发现不正确的阿拉伯语语法的示例:
\n\xd8\xab\xd9\x85\xd8\xa7\xd9\x86 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa7\xd8\xaa ==> correct: \xd8\xab\xd9\x85\xd8\xa7\xd9\x86\xd9\x8a \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa7\xd8\xaa\n\n\xd8\xae\xd9\x85\xd8\xb3\xd8\xa9 \xd8\xb9\xd8\xb4\xd8\xb1 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a ==> correct: \xd8\xae\xd9\x85\xd8\xb3\xd8\xa9 \xd8\xb9\xd8\xb4\xd8\xb1 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a\xd9\x8b\xd8\xa7 \n\n\xd9\x85\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 ==> correct: \xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\n\n\xd9\x88\xd8\xa7\xd8\xad\xd8\xaf \xd9\x88\xd8\xb9\xd8\xb4\xd8\xb1\xd9\x88\xd9\x86 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9 ==> correct: \xd8\xa5\xd8\xad\xd8\xaf\xd9\x89 \xd9\x88\xd8\xb9\xd8\xb4\xd8\xb1\xd9\x88\xd9\x86 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9\n\n\xd8\xae\xd9\x85\xd8\xb3 \xd8\xa2\xd9\x84\xd8\xa7\xd9\x81 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9 ==> correct: \xd8\xae\xd9\x85\xd8\xb3\xd8\xa9 \xd8\xa2\xd9\x84\xd8\xa7\xd9\x81 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9\n\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 ==> correct: \xd8\xa3\xd9\x84\xd9\x81\xd8\xa7 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\n\n\xd9\x88\xd8\xa7\xd8\xad\xd8\xaf \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 ==> correct: \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd9\x88\xd8\xa7\xd8\xad\xd8\xaf\n\n\xd9\x88\xd8\xa7\xd8\xad\xd8\xaf \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9 ==> correct: \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9 \xd9\x88\xd8\xa7\xd8\xad\xd8\xaf\xd8\xa9\n\n\xd8\xa7\xd8\xad\xd8\xaf\xd9\x89 \xd8\xb9\xd8\xb4\xd8\xb1 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9 ==> correct: \xd8\xa5\xd8\xad\xd8\xaf\xd9\x89 \xd8\xb9\xd8\xb4\xd8\xb1\xd8\xa9 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9\n\n\xd8\xa7\xd8\xab\xd9\x86\xd8\xa7\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 ==> correct: \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd8\xa7\xd9\x86 \xd8\xa7\xd8\xab\xd9\x86\xd8\xa7\xd9\x86\nRun Code Online (Sandbox Code Playgroud)\n该函数还处理值的小数部分。
\n在其基本形式中,该函数采用要转换的数字和货币 3 字母 ISO 代码。请参阅下文如何添加更多 ISO 代码。
\n例子:
\nconsole.log(tafqeet( 2234.46 , "USD") );\nconsole.log(tafqeet( 2234.46 , "LBP") );\nconsole.log(tafqeet( 2234.46 , "EGP") );\nconsole.log(tafqeet( 2234.46 , "KWD") );\nconsole.log(tafqeet( 2234.46 , "SDG") );\nconsole.log(tafqeet( 2234.46 , "JOD") );\n\n// output:\n\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xaf\xd9\x88\xd9\x84\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd8\xa3\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88\xd8\xb3\xd8\xaa\xd8\xa9 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd9\x88\xd9\x86 \xd8\xb3\xd9\x86\xd8\xaa\xd9\x8b\xd8\xa7\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9\xd9\x8b \xd9\x84\xd8\xa8\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xa9\xd9\x8b\xd8\x8c \xd9\x88\xd8\xb3\xd8\xaa\xd8\xa9 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd9\x88\xd9\x86 \xd9\x82\xd8\xb1\xd8\xb4\xd9\x8b\xd8\xa7\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd9\x8b\xd8\xa7 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88\xd8\xb3\xd8\xaa\xd8\xa9 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd9\x88\xd9\x86 \xd9\x82\xd8\xb1\xd8\xb4\xd9\x8b\xd8\xa7\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd9\x85\xd8\xa7\xd8\xa6\xd8\xa9 \xd9\x88\xd8\xb3\xd8\xaa\xd9\x88\xd9\x86 \xd9\x81\xd9\x84\xd8\xb3\xd9\x8b\xd8\xa7\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd9\x8b\xd8\xa7 \xd8\xb3\xd9\x88\xd8\xaf\xd8\xa7\xd9\x86\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88\xd8\xb3\xd8\xaa\xd8\xa9 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd9\x88\xd9\x86 \xd9\x82\xd8\xb1\xd8\xb4\xd9\x8b\xd8\xa7\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd8\xa3\xd8\xb1\xd8\xaf\xd9\x86\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd9\x85\xd8\xa7\xd8\xa6\xd8\xa9 \xd9\x88\xd8\xb3\xd8\xaa\xd9\x88\xd9\x86 \xd9\x81\xd9\x84\xd8\xb3\xd9\x8b\xd8\xa7\nRun Code Online (Sandbox Code Playgroud)\n在短格式中,小数部分将显示为分数。
\n例子:
\nconsole.log(tafqeet( 2234.46 , "USD", {format:\'short\'}) );\nconsole.log(tafqeet( 2234.46 , "LBP", {format:\'short\'}) );\nconsole.log(tafqeet( 2234.46 , "EGP", {format:\'short\'}) );\nconsole.log(tafqeet( 2234.46 , "KWD", {format:\'short\'}) );\nconsole.log(tafqeet( 2234.46 , "SDG", {format:\'short\'}) );\nconsole.log(tafqeet( 2234.46 , "JOD", {format:\'short\'}) );\n\n// output:\n\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xaf\xd9\x88\xd9\x84\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd8\xa3\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x8846/100 \xd8\xaf\xd9\x88\xd9\x84\xd8\xa7\xd8\xb1 \xd8\xa3\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9\xd9\x8b \xd9\x84\xd8\xa8\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xa9\xd9\x8b\xd8\x8c \xd9\x8846/100 \xd9\x84\xd9\x8a\xd8\xb1\xd8\xa9 \xd9\x84\xd8\xa8\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xa9\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd9\x8b\xd8\xa7 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x8846/100 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88460/1000 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd9\x8b\xd8\xa7 \xd8\xb3\xd9\x88\xd8\xaf\xd8\xa7\xd9\x86\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x8846/100 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd8\xb3\xd9\x88\xd8\xaf\xd8\xa7\xd9\x86\xd9\x8a\n\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7\xd9\x86 \xd9\x88\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd9\x88\xd9\x86 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd9\x8b\xd8\xa7 \xd8\xa3\xd8\xb1\xd8\xaf\xd9\x86\xd9\x8a\xd9\x8b\xd8\xa7\xd8\x8c \xd9\x88460/1000 \xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd8\xa3\xd8\xb1\xd8\xaf\xd9\x86\xd9\x8a\nRun Code Online (Sandbox Code Playgroud)\n启用后,此选项会在输出字符串三元组之间添加逗号,以将数百万个单词与数千个单词分开,等等,以获得更好的可读性。
\n当输出用于编写检查时,此选项非常重要,因为它消除了书面文字解释中的任何歧义。使用英语时不会出现这种歧义。
\n比较数字 202000 的以下两 (2) 个输出:
\nconsole.log(tafqeet( 202000 , "EGP") );\nconsole.log(tafqeet( 202000 , "EGP", {legal:\'on\'}) );\n\n// output:\n\n\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x88\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\n\xd9\x85\xd8\xa7\xd8\xa6\xd8\xaa\xd8\xa7 \xd8\xa3\xd9\x84\xd9\x81 \xd9\x88\xd8\xa3\xd9\x84\xd9\x81\xd8\xa7 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\nRun Code Online (Sandbox Code Playgroud)\n在第一种情况下,如果没有合法选项“on”,输出单词也可能意味着 200+2000,等于 2200。这不是我们想要的。然而,对于第二种情况,使用选项“on”,完全消除了这种歧义。
\n可以在函数末尾轻松将其他货币添加到当前 22 种货币的列表中。
\nIso_Code:{ // Currency ISO Code e.g. "USD"\nuSingle :"", // Unit Singluar Arabic Name e.g. "\xd8\xaf\xd9\x88\xd9\x84\xd8\xa7\xd8\xb1"\nuDouble:"", // Unit Double Arbic Name e.g. "\xd8\xaf\xd9\x88\xd9\x84\xd8\xa7\xd8\xb1\xd8\xa7\xd9\x86"\nuPlural:"", // Unit Plural Arbic Name e.g. "\xd8\xaf\xd9\x88\xd9\x84\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa"\nuGender:"male" or "female", // Unit Gender e.g. "male"\nsSingle :"", // Sub-Unit Singluar Arabic Name e.g. "\xd8\xb3\xd9\x86\xd8\xaa"\nsDouble:"", // Sub-Unit Double Arbic Name e.g. "\xd8\xb3\xd9\x86\xd8\xaa\xd8\xa7\xd9\x86"\nsPlural:"", // Sub- Unit Plural Arbic Name e.g. "\xd8\xb3\xd9\x86\xd8\xaa\xd8\xa7\xd8\xaa"\nsGender:"male" or "female", // Sub-Unit Gender e.g. "male"\nfraction: number // The fraction of the Sub-Unit normally 2 or 3\n},\nRun Code Online (Sandbox Code Playgroud)\n如果您只需要一种货币的功能,那么您可以删除列表中的其他代码。
\n提供示例测试单元进行测试。
\n/*********************************************************************\n* @function : tafqeet(Number, ISO_code, [{options}])\n* @purpose : Converts Currency Values to Full Arabic Words\n* @version : 2.00\n* @author : Mohsen Alyafei\n* @date : 04 March 2022\n* @Licence : MIT\n* @param : {Number} Numeric (required)\n* @param : {code} 3-letter ISO Currency Code\n* @param : [{options}] 3 Options passed as object {name:value} as follows:\n* {comma:\'on\'} : Insert comma between triplet words.\n* {legal: \'on\'} : Uses legal mode\n* {format: \'short\'} : Uses fractions for any decimal part.\n* @returns : {string} The wordified number string in Arabic.\n*\n**********************************************************************/\nfunction tafqeet(numIn=0, code, op={}){\nlet iso=tafqeetISOList[code];if(!iso)throw new Error("Currency code not in the list!");\nlet arr=(numIn+="").split((0.1).toLocaleString().substring(1,2)),\nout=nToW(arr[0],iso.uGender=="female",op,[iso.uSingle,iso.uDouble,iso.uPlural]),\nfrc=arr[1]?(arr[1]+"000").substring(0,iso.fraction):0;\nif (frc !=0){out+="\xd8\x8c \xd9\x88"+(op.format=="short"?frc+"/1"+"0".repeat(+iso.fraction)+" "+iso.uSingle:\nnToW(frc,iso.sGender=="female",op,[iso.sSingle,iso.sDouble,iso.sPlural]));}\nreturn out;\n\nfunction nToW(numIn=0,fm,{comma,legal}={},names){\nif(numIn==0)return"\xd8\xb5\xd9\x81\xd8\xb1 "+iso.uSingle;\nlet tS=[,"\xd8\xa3\xd9\x84\xd9\x81","\xd9\x85\xd9\x84\xd9\x8a\xd9\x88\xd9\x86","\xd9\x85\xd9\x84\xd9\x8a\xd8\xa7\xd8\xb1","\xd8\xaa\xd8\xb1\xd9\x84\xd9\x8a\xd9\x88\xd9\x86","\xd9\x83\xd9\x88\xd8\xa7\xd8\xaf\xd8\xb1\xd9\x84\xd9\x8a\xd9\x88\xd9\x86","\xd9\x83\xd9\x88\xd9\x8a\xd9\x86\xd8\xaa\xd9\x84\xd9\x8a\xd9\x88\xd9\x86","\xd8\xb3\xd9\x83\xd8\xb3\xd8\xaa\xd9\x84\xd9\x8a\xd9\x88\xd9\x86"],tM=["","\xd9\x88\xd8\xa7\xd8\xad\xd8\xaf","\xd8\xa7\xd8\xab\xd9\x86\xd8\xa7\xd9\x86","\xd8\xab\xd9\x84\xd8\xa7\xd8\xab\xd8\xa9","\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9\xd8\xa9","\xd8\xae\xd9\x85\xd8\xb3\xd8\xa9","\xd8\xb3\xd8\xaa\xd8\xa9","\xd8\xb3\xd8\xa8\xd8\xb9\xd8\xa9","\xd8\xab\xd9\x85\xd8\xa7\xd9\x86\xd9\x8a\xd8\xa9","\xd8\xaa\xd8\xb3\xd8\xb9\xd8\xa9","\xd8\xb9\xd8\xb4\xd8\xb1\xd8\xa9"],tF=["","\xd9\x88\xd8\xa7\xd8\xad\xd8\xaf\xd8\xa9","\xd8\xa7\xd8\xab\xd9\x86\xd8\xaa\xd8\xa7\xd9\x86","\xd8\xab\xd9\x84\xd8\xa7\xd8\xab","\xd8\xa3\xd8\xb1\xd8\xa8\xd8\xb9","\xd8\xae\xd9\x85\xd8\xb3","\xd8\xb3\xd8\xaa","\xd8\xb3\xd8\xa8\xd8\xb9","\xd8\xab\xd9\x85\xd8\xa7\xd9\x86","\xd8\xaa\xd8\xb3\xd8\xb9","\xd8\xb9\xd8\xb4\xd8\xb1"],\nnum=(numIn+=""),tU=[...tM],t11=[...tM],out="",n99,SpWa=" \xd9\x88",miah="\xd9\x85\xd8\xa7\xd8\xa6\xd8\xa9",\nlast=~~(((numIn="0".repeat(numIn.length*2%3)+numIn).replace(/0+$/g,"").length+2)/3)-1;\nt11[0]="\xd8\xb9\xd8\xb4\xd8\xb1";t11[1]="\xd8\xa3\xd8\xad\xd8\xaf";t11[2]="\xd8\xa7\xd8\xab\xd9\x86\xd8\xa7";\nnumIn.match(/.{3}/g).forEach((n,i)=>+n&&(out+=do999(numIn.length/3-i-1,n,i==last),i!==last&&(out+=(comma==\'on\'?"\xd8\x8c":"")+SpWa)));\nlet sub=" "+names[0],n=+(num+"").slice(-2);if(n>10)sub=" "+tanween(names[0]);else if(n>2)sub=" "+names[2];\nelse if(n>0)sub=names[n-1]+" "+(fm?tF[n]:tM[n]);\nreturn out+sub;\n\nfunction tanween(n,a=n.split` `,L=a.length-1){\nconst strTF=(str,l=str.slice(-1),o=str+"\xd9\x8b\xd8\xa7")=>{return"\xd8\xa7"==l?o=str.slice(0,-1)+"\xd9\x8b\xd8\xa7":"\xd8\xa9"==l&&(o=str+"\xd9\x8b"),o;};\nfor(let i=0;i<=L;i++)if(!i||i==L)a[i]=strTF(a[i]);return a.join` `;}\n\nfunction do999(sPos,num,last){\nlet scale=tS[sPos],n100=~~(num/100),nU=(n99=num%100)%10,n10=~~(n99/10),w100="",w99="",e8=(nU==8&&fm&&!scale)?"\xd9\x8a":"";\nif (fm&&!scale){[tU,t11,t11[0],t11[1],t11[2]]=[[...tF],[...tF],"\xd8\xb9\xd8\xb4\xd8\xb1\xd8\xa9","\xd8\xa5\xd8\xad\xd8\xaf\xd9\x89","\xd8\xa7\xd8\xab\xd9\x86\xd8\xaa\xd8\xa7"];if(n99>20)tU[1]="\xd8\xa5\xd8\xad\xd8\xaf\xd9\x89";}\nif(n100){if(n100>2)w100=tF[n100]+miah;else if(n100==1)w100=miah;else w100=miah.slice(0,-1)+(!n99||legal=="on"?"\xd8\xaa\xd8\xa7":"\xd8\xaa\xd8\xa7\xd9\x86");}\nif(n99>19)w99=tU[nU]+(nU?SpWa:"")+(n10==2?"\xd8\xb9\xd8\xb4\xd8\xb1":tF[n10])+"\xd9\x88\xd9\x86";\nelse if(n99>10)w99=t11[nU]+e8+" "+t11[0];else if(n99>2)w99=tU[n99]+e8;let nW=w100+(n100 && n99?SpWa:"")+w99;\nif(!scale)return nW;if(!n99)return nW+" "+scale;if(n99>2)return nW+" "+(n99>10?scale+(last?"":"\xd9\x8b\xd8\xa7")\n:(sPos<3?[,"\xd8\xa2\xd9\x84\xd8\xa7\xd9\x81","\xd9\x85\xd9\x84\xd8\xa7\xd9\x8a\xd9\x8a\xd9\x86"][sPos]:tS[sPos]+"\xd8\xa7\xd8\xaa"));nW=(n100?w100+((legal=="on"&&n99<3)?" "+scale:"")+SpWa:"")+scale;\nreturn(n99==1)?nW:nW+(last?"\xd8\xa7":"\xd8\xa7\xd9\x86");}}}\n//=====================================================================\n\n\n\n\n\n\n\n//==================== Common ISO Currency List in Arabic ===============\nlet tafqeetISOList={\nAED:{uSingle :"\xd8\xaf\xd8\xb1\xd9\x87\xd9\x85 \xd8\xa5\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\xd9\x8a",uDouble:"\xd8\xaf\xd8\xb1\xd9\x87\xd9\x85\xd8\xa7\xd9\x86 \xd8\xa5\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xaf\xd8\xb1\xd8\xa7\xd9\x87\xd9\x85 \xd8\xa5\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd9\x81\xd9\x84\xd8\xb3",sDouble:"\xd9\x81\xd9\x84\xd8\xb3\xd8\xa7\xd9\x86",sPlural:"\xd9\x81\xd9\x84\xd9\x88\xd8\xb3",sGender:"male",fraction:2},\n\nBHD:{uSingle :"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd8\xa8\xd8\xad\xd8\xb1\xd9\x8a\xd9\x86\xd9\x8a",uDouble:"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xa8\xd8\xad\xd8\xb1\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xaf\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xb1 \xd8\xa8\xd8\xad\xd8\xb1\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd9\x81\xd9\x84\xd8\xb3",sDouble:"\xd9\x81\xd9\x84\xd8\xb3\xd8\xa7\xd9\x86",sPlural:"\xd9\x81\xd9\x84\xd9\x88\xd8\xb3",sGender:"male",fraction:3},\n\nEGP:{uSingle :"\xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a",uDouble:"\xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd8\xa7\xd9\x86 \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd8\xa7\xd8\xaa \xd9\x85\xd8\xb5\xd8\xb1\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd9\x82\xd8\xb1\xd8\xb4",sDouble:"\xd9\x82\xd8\xb1\xd8\xb4\xd8\xa7\xd9\x86",sPlural:"\xd9\x82\xd8\xb1\xd9\x88\xd8\xb4",sGender:"male",fraction:2},\n\nEUR:{uSingle :"\xd9\x8a\xd9\x88\xd8\xb1\xd9\x88",uDouble:"\xd9\x8a\xd9\x88\xd8\xb1\xd9\x88\xd8\xa7\xd9\x86",uPlural:"\xd9\x8a\xd9\x88\xd8\xb1\xd9\x88\xd8\xa7\xd8\xaa",uGender:"male",\n sSingle:"\xd8\xb3\xd9\x86\xd8\xaa",sDouble:"\xd8\xb3\xd9\x86\xd8\xaa\xd8\xa7\xd9\x86",sPlural:"\xd8\xb3\xd9\x86\xd8\xaa\xd8\xa7\xd8\xaa",sGender:"male",fraction:2},\n\nGBP:{uSingle :"\xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd8\xa5\xd8\xb3\xd8\xaa\xd8\xb1\xd9\x84\xd9\x8a\xd9\x86\xd9\x8a",uDouble:"\xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd8\xa7\xd9\x86 \xd8\xa5\xd8\xb3\xd8\xaa\xd8\xb1\xd9\x84\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xac\xd9\x86\xd9\x8a\xd9\x87\xd8\xa7\xd8\xaa \xd8\xa5\xd8\xb3\xd8\xaa\xd8\xb1\xd9\x84\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd8\xa8\xd9\x86\xd8\xb3",sDouble:"\xd8\xa8\xd9\x86\xd8\xb3\xd8\xa7\xd9\x86",sPlural:"\xd8\xa8\xd9\x86\xd8\xb3\xd8\xa7\xd8\xaa",sGender:"male",fraction:2},\n\nINR:{uSingle :"\xd8\xb1\xd9\x88\xd8\xa8\xd9\x8a\xd8\xa9 \xd9\x87\xd9\x86\xd8\xaf\xd9\x8a\xd8\xa9",uDouble:"\xd8\xb1\xd9\x88\xd8\xa8\xd9\x8a\xd8\xaa\xd8\xa7\xd9\x86 \xd9\x87\xd9\x86\xd8\xaf\xd9\x8a\xd8\xaa\xd8\xa7\xd9\x86",uPlural:"\xd8\xb1\xd9\x88\xd8\xa8\xd9\x8a\xd8\xa7\xd8\xaa \xd9\x87\xd9\x86\xd8\xaf\xd9\x8a\xd8\xa9",uGender:"female",\n sSingle :"\xd8\xa8\xd9\x8a\xd8\xb3\xd8\xa9",sDouble:"\xd8\xa8\xd9\x8a\xd8\xb3\xd8\xaa\xd8\xa7\xd9\x86",sPlural:"\xd8\xa8\xd9\x8a\xd8\xb3\xd8\xa7\xd8\xaa",sGender:"female",fraction:2},\n\nIQD:{uSingle :"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a",uDouble:"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xaf\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xb1 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd9\x81\xd9\x84\xd8\xb3",sDouble:"\xd9\x81\xd9\x84\xd8\xb3\xd8\xa7\xd9\x86",sPlural:"\xd9\x81\xd9\x84\xd9\x88\xd8\xb3",sGender:"male",fraction:2},\n\nJOD:{uSingle :"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd8\xa3\xd8\xb1\xd8\xaf\xd9\x86\xd9\x8a",uDouble:"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xa3\xd8\xb1\xd8\xaf\xd9\x86\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xaf\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xb1 \xd8\xa3\xd8\xb1\xd8\xaf\xd9\x86\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd9\x81\xd9\x84\xd8\xb3",sDouble:"\xd9\x81\xd9\x84\xd8\xb3\xd8\xa7\xd9\x86",sPlural:"\xd9\x81\xd9\x84\xd9\x88\xd8\xb3",sGender:"male",fraction:3},\n\nKWD:{uSingle :"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a",uDouble:"\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1\xd8\xa7\xd9\x86 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a\xd8\xa7\xd9\x86",uPlural:"\xd8\xaf\xd9\x86\xd8\xa7\xd9\x86\xd9\x8a\xd8\xb1 \xd9\x83\xd9\x88\xd9\x8a\xd8\xaa\xd9\x8a\xd8\xa9",uGender:"male",\n sSingle :"\xd9\x81\xd9\x84\xd8\xb3",sDouble:"\xd9\x81\xd9\x
我已经为此检查编写了一个 NPM 包:\n https://github.com/mmahgoub/tafgeetjs
\n\n$npm install tafgeetjs
用法:\nvar Tafgeet = require(\'tafgeetjs\');
var stringText = new Tafgeet(556563.20, \'SDG\').parse();
这将产生: \'\xd9\x81\xd9\x82\xd8\xb7 \xd8\xae\xd9\x85\xd8\xb3\xd9\x85\xd8\xa7\xd8\xa6\xd8\xa9 \xd9\x88 \xd8\xb3\xd8\xaa\xd8\xa9 \xd9\x88\xd8\xae\xd9\x85\xd8\xb3\xd9\x88\xd9\x86 \xd8\xa3\xd9\x84\xd9\x81 \xd9 \x88\xd8\xae\xd9\x85\xd8\xb3\xd9\x85\xd8\xa7\xd8\xa6\xd8\xa9\xd9\x88\xd8\xab\xd9\x84\xd8\xa7\xd8\xab \xd8\xa9 \xd9\x88\xd8\xb3\xd8\xaa\xd9\x88\xd9\x86 \xd8\xac\xd9\x86\xd9\x8a\xd9\x87 \xd8\xb3\xd9\x88\xd8 \xaf\xd8\xa7\xd9\x86\xd9\x8a \xd9\x88\xd8\xb9\xd8\xb4\xd8\xb1\xd9\x88\xd9\x86 \xd9\x82\xd8\xb1\xd8\xb4 \xd9\x84\xd8\xa7\xd8\xba\xd9\x8a\xd8\xb1\'。
\n\n还有一个 Angular 的例子。
\n| 归档时间: |
|
| 查看次数: |
5032 次 |
| 最近记录: |