900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > JS_将汉字转换成汉语拼音JS版

JS_将汉字转换成汉语拼音JS版

时间:2018-06-25 20:52:33

相关推荐

JS_将汉字转换成汉语拼音JS版

独角兽企业重金招聘Python工程师标准>>>

用人在知道里面提问,如何用javascript程序把汉字转换为拼音的首字母,帖子地址是:/question/41377061.html

我分析一下以后,写了下面的把汉字转换为拼音的程序,但是帖子只要拼音的首字母,所以那里只贴了一个更简单化的版本。

程序原理很简单,网上可以找到汉字拼音的数据字典,但是由于大家都知道GB2312编码里面汉字是按拼音排序的,只要知道各个拼音为首的汉字代码,就可以计算所有汉字的拼音代码了。

程序有一个关键,就是Javascript对汉字是自动使用unicode编码,为了获取起GB2312的ASCII编码值,我使用了VBSCRIPT来写了两个函数,在JAVASCRIPT程序里面调用VBSCRIPT的函数实现代码转换。

完整程序如下(把以下代码保存为一个html文件用IE打开,在汉字栏里面输入内容,光标离开的时候拼音栏就会显示相应的拼音):

<mce:script language="vbscript"><!--function vbChr(c) vbChr = chr(c) end functionfunction vbAsc(n) vbAsc = asc(n) end function // --></mce:script><mce:script language=javascript><!--var py1=new Array(20319,20317,20304,20295,20292,20283,20265,20257,20242,0,1,6,2,20026,20002,19990,19986,19982,19976,19805,19784,19775,19774,19763,19756,19751,19746,19741,19739,19728,19725,19715,19540,19531,19525,19515,19500,19484,19479,19467,19289,19288,19281,19275,19270,19263,19261,19249,19243,19242,19238,19235,19227,19224,19218,19212,19038,19023,19018,19006,19003,18996,18977,18961,18952,18783,18774,18773,18763,18756,18741,18735,18731,18722,18710,18697,18696,18526,18518,18501,18490,18478,18463,18448,18447,18446,18239,18237,18231,18220,18211,18201,18184,18183,18181,18012,17997,17988,17970,17964,17961,17950,17947,17931,17928,17922,17759,17752,17733,17730,17721,17703,17701,17697,17692,17683,17676,17496,17487,17482,17468,17454,17433,17427,17417,17202,17185,16983,16970,16942,16915,16733,16708,16706,16689,16664,16657,16647,16474,16470,16465,16459,16452,16448,16433,16429,16427,16423,16419,16412,16407,16403,16401,16393,16220,16216,16212,16205,16202,16187,16180,16171,16169,16158,16155,15959,15958,15944,15933,15920,15915,15903,15889,15878,15707,15701,15667,15661,15659,15652,15681,15640,15631,15625,15454,15448,15436,15435,15419,15416,15408,15394,15385,15377,15375,15369,15363,15362,15183,15180,15165,15158,15153,15150,15149,15144,15143,15141,15140,15139,15128,15121,15119,15117,15110,15109,14941,14937,14933,14929,14928,14926,14930,14922,14921,14914,14908,14902,14894,14889,14882,14873,14871,14857,14678,14674,14670,14668,14663,14654,14645,14630,14594,14429,14407,14399,14384,14379,14368,14355,14353,14345,14170,14159,14151,14149,14145,14140,14137,14135,14125,14123,14122,14112,14109,14099,14097,14094,14092,14090,14087,14083,13917,13914,13910,13907,13906,13905,13896,13894,13878,13870,13859,13847,13831,13658,13611,13601,13406,13404,13400,13398,13395,13391,13387,13383,13367,13359,13356,13343,13340,13329,13326,13318,13147,13138,13120,13107,13096,13095,13091,13076,13068,13063,13060,12888,12875,12871,12860,12858,12852,12849,12838,12831,12829,12812,12802,12607,12597,12594,12585,12556,12359,12346,12320,12300,12120,12099,12089,12074,12067,12058,12039,11867,11861,11847,11831,11798,11781,11604,11589,11536,11358,11340,11339,11324,11303,11097,11077,11067,11055,11052,11045,11041,11038,11024,11020,11019,11018,11014,10838,10832,10815,10800,10790,10780,10764,10587,10544,10533,10519,10331,10329,10328,10322,10315,10309,10307,10296,10281,10274,10270,10262,10260,10256,10254,0);var py2=new Array('a','ai','an','ang','ao','ba','bai','ban','bang','bao','bei','ben','beng','bi','bian','biao','bie','bin','bing','bo','bu','ca','cai','can','cang','cao','ce','ceng','cha','chai','chan','chang','chao','che','chen','cheng','chi','chong','chou','chu','chuai','chuan','chuang','chui','chun','chuo','ci','cong','cou','cu','cuan','cui','cun','cuo','da','dai','dan','dang','dao','de','deng','di','dian','diao','die','ding','diu','dong','dou','du','duan','dui','dun','duo','e','en','er','fa','fan','fang','fei','fen','feng','fo','fou','fu','ga','gai','gan','gang','gao','ge','gei','gen','geng','gong','gou','gu','gua','guai','guan','guang','gui','gun','guo','ha','hai','han','hang','hao','he','hei','hen','heng','hong','hou','hu','hua','huai','huan','huang','hui','hun','huo','ji','jia','jian','jiang','jiao','jie','jin','jing','jiong','jiu','ju','juan','jue','jun','ka','kai','kan','kang','kao','ke','ken','keng','kong','kou','ku','kua','kuai','kuan','kuang','kui','kun','kuo','la','lai','lan','lang','lao','le','lei','leng','li','lia','lian','liang','liao','lie','lin','ling','liu','long','lou','lu','luan','lue','lun','luo','lv','ma','mai','man','mang','mao','me','mei','men','meng','mi','mian','miao','mie','min','ming','miu','mo','mou','mu','na','nai','nan','nang','nao','ne','nei','nen','neng','ni','nian','niang','niao','nie','nin','ning','niu','nong','nu','nuan','nue','nuo','nv','o','ou','pa','pai','pan','pang','pao','pei','pen','peng','pi','pian','piao','pie','pin','ping','po','pu','qi','qia','qian','qiang','qiao','qie','qin','qing','qiong','qiu','qu','quan','que','qun','ran','rang','rao','re','ren','reng','ri','rong','rou','ru','ruan','rui','run','ruo','sa','sai','san','sang','sao','se','sen','seng','sha','shai','shan','shang','shao','she','shen','sheng','shi','shou','shu','shua','shuai','shuan','shuang','shui','shun','shuo','si','song','sou','su','suan','sui','sun','suo','ta','tai','tan','tang','tao','te','teng','ti','tian','tiao','tie','ting','tong','tou','tu','tuan','tui','tun','tuo','wa','wai','wan','wang','wei','wen','weng','wo','wu','xi','xia','xian','xiang','xiao','xie','xin','xing','xiong','xiu','xu','xuan','xue','xun','ya','yan','yang','yao','ye','yi','yin','ying','yo','yong','you','yu','yuan','yue','yun','za','zai','zan','zang','zao','ze','zei','zen','zeng','zha','zhai','zhan','zhang','zhao','zhe','zhen','zheng','zhi','zhong','zhou','zhu','zhua','zhuai','zhuan','zhuang','zhui','zhun','zhuo','zi','zong','zou','zu','zuan','zui','zun','zuo','');function getPinYin(index){var i;if(index==0x1534) return 'yan';if(index>0x4F5F||index<0x2807) return '';i=0;while(py1[i]>=index)i++;return py2[i-1];}function pinyin(s){var i,s2='';for (i=0;i<s.length;i++)s2+=getPinYin(0-vbAsc(s.charAt(i)));return s2;}// --></mce:script>

<form name=frm>汉字:<input type=text name=s SIZE=120 onchange="javascript:document.frm.p.value=pinyin(this.value);"><BR>拼音:<input type=text name=p SIZE=120 readonly></form>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。