UNPKG

chinese-numbering

Version:
3 lines (2 loc) 2.75 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ChineseNumbering={})}(this,(function(e){"use strict";const n=Object.freeze({chineseType:"simplified",keepOne:!1});function i(e){switch(e){case"s":return"simplified";case"t":return"traditional";default:return e}}function t(e){return"boolean"==typeof e?{chineseType:e?"traditional":"simplified",keepOne:n.keepOne}:"string"==typeof e?{chineseType:i(e),keepOne:n.keepOne}:"object"==typeof e&&null!==e?{chineseType:"string"==typeof e.chineseType?i(e.chineseType):n.chineseType,keepOne:void 0===e.keepOne?n.keepOne:!!e.keepOne}:n}var o=Object.freeze({__proto__:null,simplified:{digits:["零","一","二","三","四","五","六","七","八","九"],units:["","十","百","千","万","十","百","千","亿","十","百","千","兆","十","百","千","京","十","百","千","垓"],ordinal:"第",point:"点",minus:"负"},traditional:{digits:["零","一","二","三","四","五","六","七","八","九"],units:["","十","百","千","萬","十","百","千","億","十","百","千","兆","十","百","千","京","十","百","千","垓"],ordinal:"第",point:"點",minus:"負"}});function r(e){return o[e.chineseType]}const s=new WeakMap;function p(e){const n=s.get(e);if(n)return n;const{digits:i,units:t}=e,o=t[1]+t[2]+t[3],r=t[4]+t[8]+t[12]+t[16]+t[20],p=i[0],l={onlyZero:[new RegExp(`(${p})[${o}]`,"g"),"$1"],zeroBetweenBigUnits:[new RegExp(`([${r}])[^${o}]+([${r}])`,"g"),"$1"+p],zeroBetweenSmallAndBigUnits:[new RegExp(`([${o}])${p}+([${r}])`,"g"),"$1$2"+p],groupZero:[new RegExp(`(${i[0]})+`,"g"),"$1"],removeTailZero:[new RegExp(p+"+$"),""],removeOne:[new RegExp(`^${i[1]}${t[1]}`),t[1]]};return s.set(e,l),l}function l(e,n){const i=t(n),o=r(i);return function(e,n,i){const{digits:t,units:o,minus:r}=n,s=p(n);let l=Math.floor(Math.abs(e));if(l<1)return(e<0?r:"")+t[0];let u="",c=0;for(;l>0;)u=t[l%10]+o[c]+u,l=Math.floor(l/10),c++;return u=u.replace(...s.onlyZero).replace(...s.zeroBetweenBigUnits).replace(...s.zeroBetweenSmallAndBigUnits).replace(...s.groupZero).replace(...s.removeTailZero),1!=i&&(u=u.replace(...s.removeOne)),(e<0?r:"")+u}(e,o,i.keepOne)+function(e,n){if(e%1==0)return"";e=Math.abs(e);const{digits:i,point:t}=n;let o=e.toString();o=o.slice(o.indexOf(".")+1);let r="";for(const e of o)r+=i[parseInt(e)];return t+r}(e,o)}e.normalizeChineseType=i,e.normalizeOptions=t,e.numberToChinese=l,e.numberToChineseOrdinal=function(e,n){const i=t(n);return r(i).ordinal+l(e,i)},e.numberToChineseOrdinalWithArabic=function(e,n){return r(t(n)).ordinal+e.toString(10)},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=umd.min.js.map