码迷,mamicode.com
首页 > 其他好文 > 详细

用哈萨克文拼写数字

时间:2018-07-20 11:35:40      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:inpu   var   ext   图片   gif   NPU   com   display   slice   

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

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

 

这里是 Number Speller 的源码:

技术分享图片
/*!
 *  NoorTyNumberSpeller.js
 * ------------------------
 *
 * Number to words spelling tool.
 * 
 * NoorTy. 2018-07-19.
 *
 * 535372977@qq.com
 * 
 */
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源代码

 

用哈萨克文拼写数字

标签:inpu   var   ext   图片   gif   NPU   com   display   slice   

原文地址:https://www.cnblogs.com/noorty/p/NumberSpeller.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!