mstf-kit
Version:
一个现代化的 JavaScript/TypeScript 工具库,提供了丰富的常用工具函数
2 lines (1 loc) • 1.59 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=["ئ","ا","ە","ب","پ","ت","ج","چ","خ","د","ر","ز","ژ","س","ش","غ","ف","ق","ك","گ","ڭ","ل","م","ن","ھ","و","ۇ","ۆ","ۈ","ۋ","ې","ى","ي"],n=["مەن","سەن","ئۇ","بىز","سىلەر","ئۇلار","ۋە","بىلەن","ئۈچۈن","لېكىن","چۈنكى","بار","يوق","كەلدى","كەتتى","ياخشى","چوڭ","قانداق","نېمە","قاچان","قەيەر","كىم"],e=/[\u4e00-\u9fa5]/;function r(n,r=1.5){if(!n||0===n.trim().length)return{uyghurCharCount:0,chineseCharCount:0,ratio:0,isUyghurDominant:!1,dominantScript:"Balanced"};const i=n.replace(/[\s\p{P}]/gu,"");if(0===i.length)return{uyghurCharCount:0,chineseCharCount:0,ratio:0,isUyghurDominant:!1,dominantScript:"Balanced"};let o=0,u=0;for(const c of i)t.includes(c)?o++:e.test(c)&&u++;const s=u>0?o/u:o>0?1/0:0;let a;return a=s>=r?"Uyghur":s<=1/r?"Chinese":"Balanced",{uyghurCharCount:o,chineseCharCount:u,ratio:s,isUyghurDominant:s>=r,dominantScript:a}}exports.compareUyghurAndChineseRatio=r,exports.extractUyghurText=function(n){if(!n||0===n.trim().length)return[];const e=new RegExp(`[${t.join("")}]+`,"g"),r=n.match(e);return r?r.filter((t=>t.length>1)):[]},exports.isUyghurDominant=function(t,n=1.5){return r(t,n).isUyghurDominant},exports.isUyghurText=function(e,r=.4){if(!e||0===e.trim().length)return!1;const i=e.replace(/[\s\p{P}]/gu,"");if(0===i.length)return!1;let o=0;for(const n of i)t.includes(n)&&o++;const u=o/i.length,s=n.some((t=>e.includes(t)));return u>=r||!!(u>=.3&&s)};