用哈萨克文拼写数字

Posted noorty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用哈萨克文拼写数字相关的知识,希望对你有一定的参考价值。

这是一个能用哈萨克语拼写数字的小工具,我把它叫做 Number Speller ,它能拼写63位以内的整数。

在这个输入框中输入数字:

 

这里是 Number Speller 的源码:

技术分享图片
/*!
 *  NoorTyNumberSpeller.js
 * ------------------------
 *
 * Number to words spelling tool.
 * 
 * NoorTy. 2018-07-19.
 *
 * [email protected]
 * 
 */
function NoorTyNumberSpeller(a) {
    "use strict";
    if (typeof a !== "string") a = a.toString();
    if (a.match(/[^0-9]/)) return "";
    if (a.match(/^(0+)$/)) return "н?л";
    function b(a) {
        a = parseFloat(a);
        var b = [
            "б?р",
            "ек?",
            "?ш",
            "т?рт",
            "бес",
            "алты",
            "жет?",
            "сег?з",
            "то?ыз"
        ];
        return b[a - 1];
    }
    function c(a) {
        var c = [
            "он",
            "жиырма",
            "отыз",
            "?ыры?",
            "елу",
            "алпыс",
            "жетп?с",
            "сексен",
            "то?сан"
        ];
        var d = a.substr(0, 1);
        var e = a.substr(1);
        if ("0" === d) {
            return b(e); 
        } else if ("0" === e) {
            return c[d - 1]; 
        } else {
            return c[d - 1] + " " + b(e);
        }
    }
    function d(a) {
        a = parseFloat(a).toString();
        var d = a.length;
        var e = "";
        if ("0" === a) return "";
        if ( 1  === d) return b(a);
        if ( 2  === d) return c(a);
        if ( 3  === d) {
            e += b(a.substr(0, 1));
            e += " ж?з ";
            if ("0" !== a.substr(1, 1)) e += c(a.substr(1));
            if ("0" === a.substr(1, 1) && "0" !== a.substr(2)) e += b(a.substr(2));
            return e;
        }
    }
    function e(a) {
        a = (a || 0).toString();
        var b = "";
        while (a.length > 3) {
            b = "," + a.slice(-3) + b;
            a = a.slice(0, a.length - 3);
        }
        if (a) b = a + b;
        return b.split(",");
    }
    var f = e(a);
    var g = "";
    var h = "мы?, миллион, миллиард, триллион, квадриллион, секстиллион, септиллион, октиллион, нониллион, дециллион, андилион, дубдецилион, гредециллион, кваргтордециллион, квиндециллион, сеацдециллион, сендендециллион, октодециллион, новемдециллион, вигинтилион".split(", ");
    var i;
    for (i = f.length; i > 0; i--) {
        g += d(f[f.length - i]) + " ";
        if (f[f.length - i].search(/[1-9]/) >= 0 && i > 1) g += h[i - 2] + " ";
    }
    g = g.replace(/s+/g, " ");
    g = g.replace(/^s+|s+$/g, "");
    return g;
}
哈萨克文拼写数字的javascript源代码

 

以上是关于用哈萨克文拼写数字的主要内容,如果未能解决你的问题,请参考以下文章

中关村科幻产业创新中心 “科技赋能文化旅游,洞见哈萨克斯坦”数字旅游展盛大开幕

货币到单词拼写错误的问题

sql 在PL / SQL中拼写数字

制作一个从函数返回字符串的数字拼写程序

技巧118 对你的工作进行拼写检查

c#代码片段快速构建代码