用哈萨克文拼写数字
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; }
以上是关于用哈萨克文拼写数字的主要内容,如果未能解决你的问题,请参考以下文章