易截截图软件、单文件、免安装、纯绿色、仅160KB

JavaScript实现中文转拼音

1、问题背景:
在做项目时候遇到一个小小的显示客户部门名称(拼音)的业务,就是在部门名称下有相应的拼音,而在现有的数据库中没有相应字段,并且部门数量比较多,添加起来比较费时,就想能否在js中实现,在页面中处理。
2、原理描述
程序原理很简单,网上可以找到汉字拼音的数据字典,但是由于大家都知道GB2312编码里面汉字是按拼音排序的,只要知道各个拼音为首的汉字代码,就可以计算所有汉字的拼音代码了。
本文通过自定义用于存放汉字拼音与ascii码对应的数据字典,再通过将需要转换的汉字转为ascii码(两位),最后通过查找字典匹配即可,具体实现见代码。
3、实现代码:
      
       javascript代码:
<script language="javascript" type="text/javascript">
function hash(_key,_value)
{
this.key = _key; /* 拼音*/
this.value = _value; /* ascii码*/
}
 
/* javascript 的自定义对象,用于存放汉字拼音数据字典*/
function dictionary()
{
this.items = [];
this.add = function(_key,_value)
{
this.items[this.items.length] = new hash(_key,_value);
}
}
 
/*汉字拼音的数据字典-共396个-通过组合声母和韵母*/
var d = new dictionary();
 
d.add("a",-20319);
d.add("ai",-20317);
d.add("an",-20304);
d.add("ang",-20295);
d.add("ao",-20292);
d.add("ba",-20283);
d.add("bai",-20265);
d.add("ban",-20257);
d.add("bang",-20242);
d.add("bao",-20230);
d.add("bei",-20051);
d.add("ben",-20036);
d.add("beng",-20032);
d.add("bi",-20026);
d.add("bian",-20002);
d.add("biao",-19990);
d.add("bie",-19986);
d.add("bin",-19982);
d.add("bing",-19976);
d.add("bo",-19805);
d.add("bu",-19784);
d.add("ca",-19775);
d.add("cai",-19774);
d.add("can",-19763);
d.add("cang",-19756);
d.add("cao",-19751);
d.add("ce",-19746);
d.add("ceng",-19741);
d.add("cha",-19739);
d.add("chai",-19728);
d.add("chan",-19725);
d.add("chang",-19715);
d.add("chao",-19540);
d.add("che",-19531);
d.add("chen",-19525);
d.add("cheng",-19515);
d.add("chi",-19500);
d.add("chong",-19484);
d.add("chou",-19479);
d.add("chu",-19467);
d.add("chuai",-


相关文档:

JavaScript精粹读书笔记(8)

http://blog.csdn.net/mouyong/archive/2010/02/26/5329773.aspx
第8章  方法
JavaScript包含了少量可用在标准类型上的标准方法。
Array
array.concat(item…)
concat方法返回一个新数组,它包含array的浅复制(shallow copy)并将1个或多个参数item附加在其后。如果参数item是一个数组,那么它的每个元 ......

Javascript 延迟函数

function Pause(obj, pSecond) {
/*利用window.eventList系统对象来传递Test这个弱对象,这是由于你的函数有可能是带参数的。
由面向对象的思想,传递参数尽量不要采用全局变量,因为你的对象有可能有1个也有可能有n个,而
有些时候所创建对象的个数并不是你事先可以知道的,那么要创建全局变量的个数自然很难判断了 ......

边学边谈 javascript的冒号

昨天看到一个js  发现 obj={a:"123",b:"abc",objfunction:function(){...}} 这样的语句,有点费解
现在把从书上和网上找到的一点东西贴出来  自用&共享
javascript的冒号  用途:
1、switch语句分支
 
     switch (s) { 
     &nbs ......

有关 JavaScript 的 10 件让人费解的事情

转自:http://news.csdn.net/a/20100217/217053.html
JavaScript 可算是世界上最流行的编程语言,它曾被 Web 开发设计师贴上噩梦的标签,虽然真正的噩梦其实是 DOM API,这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言,如今越来越被重视,虽则如此,JavaScript 仍然拥有很多让人费解的东西。
1. 它以 J ......

JavaScript 中使用 replace 达到 replaceAll的效果

方法: string.replace(new RegExp(oldString,"gm"),newString))
gm  g=global, m=multiLine,大致上方法就是这样的,可以实现替换全部指定字串
另一个简单的验证JS的方法:
在浏览器地址栏输入
javascript:alert("abcabcabc".replace(new RegExp("a","gm"),"ad&quo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号