`
zhangyaochun
  • 浏览: 2613202 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

kissy gallery系列之pinyin

阅读更多

 

   本文收录kissy gallery之pinyin:

 

   主要分解一下其中比较核心的设计思想~

 

     为数不多不依赖底层库的,http://gallery.kissyui.com/pinyin/1.0/guide/index.html?spm=0.0.0.0.i7apRd

 

     不过还是有一些bad case,比如fu系列,以反馈到官方git上

 

   pinyin  

 

   ------- 主要是做汉字转换拼音

 

  

var key = "吖哎安肮凹八挀扳邦勹陂奔伻皀边灬憋汃冫癶峬嚓偲参仓撡冊嵾噌叉犲辿伥抄车抻阷吃充抽出膗巛刅吹旾踔呲从凑粗汆镩蹿崔邨搓咑呆丹当刀恴揼灯仾嗲敁刁爹丁丟东吺剢耑叾吨多妸奀鞥仒发帆匚飞分丰覅仏垺夫旮侅干冈皋戈给根更工勾估瓜乖关光归丨呙妎咍兯夯茠诃黒拫亨乊叿齁乎花怀欢巟灰昏吙丌加戋江艽阶巾坕冂丩凥姢噘军咔开刊忼尻匼肎劥空廤扝夸蒯宽匡亏坤扩垃来兰啷捞仂雷塄唎俩嫾簗蹽咧厸伶溜咯龙娄噜驴孪掠抡捋嘸妈埋颟牤猫庅呅椚掹踎宀喵乜民名谬摸哞某母拏腉囡囔孬疒娞嫩莻妮拈娘鸟捏脌宁妞农羺奴女疟奻硸噢妑拍眅乓抛呸喷匉丕片剽氕姘乒钋剖仆七掐千呛悄切亲靑宆丘区峑炔夋亽呥穣荛惹人扔日戎厹嶿堧桵闰挼仨毢三桒掻色杀筛山伤弰奢申升尸収书刷衰闩双谁妁厶忪凁苏狻夊孙唆他囼坍汤仐忑膯剔天旫怗厅囲偷凸湍推吞乇屲歪乛尣危塭翁挝乌夕呷仙乡灱些忄兴凶休戌吅疶坃丫咽央幺倻膶一乚应哟佣优扜囦曰蒀帀災兂牂傮啫贼怎曽吒夈沾张佋蜇贞凧之中州朱抓拽专妆隹宒卓仔孖宗邹租劗厜尊昨".split(""),
    pinyin = "AAiAnAngAoBaBaiBanBangBaoBeiBenBengBiBianBiaoBieBinBingBoBuCaCaiCanCangCaoCeCenCengChaChaiChanChangChaoCheChenChengChiChongChouChuChuaiChuanChuangChuiChunChuoCiCongCouCuCuanChuanCuanCuiCunCuoDaDaiDanDangDaoDeDenDengDiDiaDianDiaoDieDingDiuDongDouDuDuanDuiDunDuoEEnEngErFaFanFangFeiFenFengFiaoFoFouFuGaGaiGanGangGaoGeGeiGenGengGongGouGuGuaGuaiGuanGuangGuiGunGuoHaHaiHanHangHaoHeHeiHenHengHoHongHouHuHuaHuaiHuanHuangHuiHunHuoJiJiaJianJiangJiaoJieJinJingJiongJiuJuJuanJueJunKaKaiKanKangKaoKeKenKengKongKouKuKuaKuaiKuanKuangKuiKunKuoLaLaiLanLangLaoLeLeiLengLiLiaLianLiangLiaoLieLinLingLiuLoLongLouLuLvLuanLveLunLuoMMaMaiManMangMaoMeMeiMenMengMiMianMiaoMieMinMingMiuMoMouMeiMuNaNaiNanNangNaoNeNeiNenNNiNianNiangNiaoNieNinNingNiuNongNouNuNvNveNuanNuoOuPaPaiPanPangPaoPeiPenPengPiPianPiaoPiePinPingPoPouPuQiQiaQianQiangQiaoQieQinQingQiongQiuQuQuanQueQunRaRanRangRaoReRenRengRiRongRouRuRuanRuiRunRuoSaSaiSanSangSaoSeShaShaiShanShangShaoSheShenShengShiShouShuShuaShuaiShuanShuangShuiShuoSiSongSouSuSuanSuiSunSuoTaTaiTanTangTaoTeTengTiTianTiaoTieTingTongTouTuTuanTuiTunTuoWaWaiWanWangWeiWenWengWoWuXiXiaXianXiangXiaoXieXinXingXiongXiuXuXuanXueXunYaYanYangYaoYeYenYiYinYingYoYongYouYuYuanYueYunZaZaiZanZangZaoZeZeiZenZengZhaZhaiZhanZhangZhaoZheZhenZhengZhiZhongZhouZhuZhuaZhuaiZhuanZhuangZhuiZhunZhuoZaiZiZongZouZuZuanZuiZunZuo".split(/(?=[A-Z])/g),
    cache = {},
    keyLen=key.length-1;

 

 

    核心的pinyinFn方法:

 

  

function pinyinFn(w){
     //多个汉字的情况
     if(w.length >1){
           var ret = '',
                 i = 0;
           for(;i<w.length;i++){
                 ret += pinyinFn(w.charAt(i));
           }

           return ret;
     }

     //判定是否是中文汉字
     if(!/[\u4e00-\u9fa5]/.test(w)){
           return w;
     }

     //缓存里面 
     if(cache[w]){
           return cache[w];
     }

     var begin = 0,
           end = keyLen;

     //二分法
     while(begin <= end){
           var middle = Math.floor((begin+end)/2);
           if(w.localeCompare(key[middle]) <0){
                 end = middle-1;
           }else{
                 begin = middle+1; 
           }
     }

     return cache[w] = pinyin[end];

}
分享到:
评论

相关推荐

    从Kissy Gallery的重构谈JavaScript框架社区建设.pdf

    JavaScript 框架社区建设 - 从 Kissy Gallery 的重构谈起 Kissy 是阿里前端自主开发的 JavaScript 框架,它的生态圈基础建设有些薄弱,社区贡献代码的人寥寥无几。Kissy 的困境几乎是 JavaScript 框架的缩影。国内...

    Kissy 15天学会.zip

    4. **丰富的组件**:Kissy 提供了一系列实用的组件,如DOM操作、事件处理、Ajax请求、动画效果等,覆盖了前端开发的多个方面,可以帮助开发者快速构建复杂应用。 5. **工具链支持**:Kissy 配套有构建工具,如Gulp...

    kissy源文件代码

    淘宝发布开源编辑器:...KISSY 目前基于 YUI 2.x 开发,目标是打造一系列小巧灵活、简洁实用、使用起来让人感觉愉悦的 UI 组件,目前已有 CSS 基础框架、搜索提示 Suggest 和 KISSY Editor 这个富文本编辑器等组件。

    Kissy学习教程

    Kissy 提供了一系列实用的工具方法,例如DOM操作、事件处理、Ajax请求等,这些都是前端开发中不可或缺的部分。通过Kissy,我们可以轻松地对DOM元素进行增删改查,监听和处理用户事件,以及与服务器进行异步通信。 ...

    kissy-1.4.8.rar

    3. **组件丰富**:Kissy 提供了一系列的内置组件,如 AJAX、DOM 操作、事件处理、动画效果等,这些组件经过精心设计和优化,可以快速构建出功能完备的前端应用。 4. **高性能**:Kissy 通过代码压缩、合并以及异步...

    kissy 学习

    5. **插件机制**:Kissy 的强大之处还在于其灵活的插件机制,开发者可以创建自己的插件,扩展Kissy的功能,满足特定项目的需求。 "Kissy一些功能介绍.xlsx" 文件很可能是对Kissy各项功能的详细说明,包括但不限于...

    Web常用UI库 kissy.zip

    Kissy 是一个由淘宝开发并开源的JavaScript库,它的设计目标是为Web开发者提供一套全面、强大且易用的UI组件。Kissy 的出现旨在简化Web应用的开发过程,提高开发效率,尤其在构建复杂的前端界面时表现出强大的优势。...

    kissy学习教程

    最后,教程通过一系列动手实践的示例,让学习者能够更加直观地了解和使用KISSY框架。在KISSY中,可以使用模块化的思想来组织JavaScript代码,这不仅提升了代码的可维护性,还提高了前端性能。此外,KISSY还提供了...

    淘宝KISSY前端开发框架

    KISSY提供稳定的核心,包括 oo、dom、Event、Anim、Ajax 等;强大且易用的脚本加载器,特有的 loader;丰富的UI组件,包括 Switchable、Overlay、Draggable and Droppable 等。KISSY具备模块化、高扩展性、组件齐全...

    kissy editor 2.0

    《淘宝帮派编辑器Kissy Editor 2.0详解》 Kissy Editor 2.0是淘宝帮派推出的一款强大的富文本编辑器,专为提升用户在社区中的内容创作体验而设计。它集成了多种功能,使用户可以方便地创建、编辑和格式化文本,同时...

    提示补全组件:Kissy Suggest

    标题中的“Kissy Suggest”是指Kissy框架中的一个组件,Kissy是一个轻量级的JavaScript库,专注于前端开发,提供了丰富的组件化功能。Suggest组件则是Kissy中用于实现自动提示、补全功能的部分,常见于搜索框或...

    KISSY 1.4.8

    KISSY 1.4.8,一个淘宝用的类似jQuery的前端框架

    kissy-1.4.8.zip

    kissy-1.4.8.zip,淘宝最新前端开发包

    Kissy Suggest 自动提示例子

    Suggest 组件的核心在于提供快速、智能的输入提示服务,通过分析用户输入的字符,实时显示与之相关的建议列表,帮助用户快速找到目标信息。 首先,我们需要了解 Kissy Suggest 的基本结构。该组件主要由两部分组成...

    js KISSY框架阿里云滑动下拉导航菜单效果代码

    js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码

    generator-kpm:kissy gallery工具2.0

    a yeoman generator for kissy-gallery install 安装yeoman npm install yo grunt-cli -g 安装kissy-gallery目录生成器 npm install generator-kpm -g 生成组件目录 比如你的组件目录是offline,进入该目录,然后...

    修改的Kissy富文本编辑器

    "修改的Kissy富文本编辑器"是一款基于Kissy框架的增强型文本编辑器,它在原生的Kissy Editor基础上进行了定制和优化,旨在提供更丰富的功能和更好的用户体验。Kissy是一个轻量级的JavaScript库,专注于前端开发,而...

    kissy 框架

    淘宝发布开源编辑器:KISSY Editor,和我们在 WordPress 后台使用的富文本编辑器 TinyMCE 一样,它可以让我们在线编辑和格式化文本,但是相比 TinyMCE KISSY Editor 更加轻巧,更加适合国内的网络环境。

    kissy文件 kissyteam-kissyteam.github.com-901d2cd.rar

    《Kissy 文件与 KissyTeam 的前端开发实践》 Kissy 是一个轻量级的 JavaScript 框架,由 KissyTeam 团队开发并维护。这个名为 "kissyteam-kissyteam.github.com-901d2cd.rar" 的压缩包文件,包含了 KissyTeam 在 ...

    shopify免费主题模板kissy

    Shopify的强大之处在于其丰富的应用程序市场和高度可定制性,使得即使没有编程背景的商家也能轻松操作。 主题模板是Shopify商店的视觉呈现,它决定了商店的整体风格和用户体验。Kissy主题是针对内衣类商品特别定制...

Global site tag (gtag.js) - Google Analytics