您的位置:首页 > Web前端 > JavaScript

JS中获取汉字的简拼、全拼

2011-09-26 21:39 375 查看
<Html>

<Head>

<Title>

JS中汉字转拼音

</Title>

<Script language="javascript" type="text/javascript">

function BeginChangeSmiple()

{

//execScript("ascCode=Asc(\"A\")", "vbscript");

//alert(ascCode);

//alert("A".charCodeAt(0));

var hz=document.getElementById('lbl1').value;

var cResult=getsimplepy(hz);

document.getElementById('lblResult').value=cResult;

}



//获取简拼方法

function getsimplepychar(text)

{

var returnChar = "";

execScript("ascCode=Asc(\""+text+"\")", "vbscript");

var tmp = 65536 + ascCode;

if(tmp>=45217 && tmp<=45252)

returnChar= "A";

else if(tmp>=45253 && tmp<=45760)

returnChar= "B";

else if(tmp>=45761 && tmp<=46317)

returnChar= "C";

else if(tmp>=46318 && tmp<=46825)

returnChar= "D";

else if(tmp>=46826 && tmp<=47009)

returnChar= "E";

else if(tmp>=47010 && tmp<=47296)

returnChar= "F";

else if(tmp>=47297 && tmp<=47613)

returnChar= "G";

else if(tmp>=47614 && tmp<=48118)

returnChar= "H";

else if(tmp>=48119 && tmp<=49061)

returnChar= "J";

else if(tmp>=49062 && tmp<=49323)

returnChar= "K";

else if(tmp>=49324 && tmp<=49895)

returnChar= "L";

else if(tmp>=49896 && tmp<=50370)

returnChar= "M";

else if(tmp>=50371 && tmp<=50613)

returnChar= "N";

else if(tmp>=50614 && tmp<=50621)

returnChar= "O"

else if(tmp>=50622 && tmp<=50905)

returnChar= "P";

else if(tmp>=50906 && tmp<=51386)

returnChar= "Q";

else if(tmp>=51387 && tmp<=51445)

returnChar= "R";

else if(tmp>=51446 && tmp<=52217)

returnChar= "S";

else if(tmp>=52218 && tmp<=52697)

returnChar= "T";

else if(tmp>=52698 && tmp<=52979)

returnChar= "W";

else if(tmp>=52980 && tmp<=53640)

returnChar= "X";

else if(tmp>=53689 && tmp<=54480)

returnChar= "Y";

else if(tmp>=54481 && tmp<=62289)

returnChar= "Z";

else //如果不是中文,则不处理

returnChar=text;

return returnChar;

}

function getsimplepy(text)

{

var returnStr = "";

for (var i = 0; i < text.length; i++)

{

returnStr = returnStr + getsimplepychar(text.substring(i, i+1))

}

return returnStr;

}



//获取全拼方法

function BeginChangeFull()

{

var hz=document.getElementById('lbl1').value;

var cResult=getfullpy(hz);

document.getElementById('lblResult').value=cResult;

}

function getfullpy(text)

{

var returnStr = "";

for (var i = 0; i < text.length; i++)

{

returnStr = returnStr + getfullpychar(text.substring(i, i+1))

}

return returnStr;

}

function getfullpychar(text)

{

var varPinYinTable= {

"$20319":"a",

"$20317":"ai",

"$20304":"an",

"$20295":"ang",

"$20292":"ao",

"$20283":"ba",

"$20265":"bai",

"$20257":"ban",

"$20242":"bang",

"$20230":"bao",

"$20051":"bei",

"$20036":"ben",

"$20032":"beng",

"$20026":"bi",

"$20002":"bian",

"$19990":"biao",

"$19986":"bie",

"$19982":"bin",

"$19976":"bing",

"$19805":"bo",

"$19784":"bu",

"$19775":"ca",

"$19774":"cai",

"$19763":"can",

"$19756":"cang",

"$19751":"cao",

"$19746":"ce",

"$19741":"ceng",

"$19739":"cha",

"$19728":"chai",

"$19725":"chan",

"$19715":"chang",

"$19540":"chao",

"$19531":"che",

"$19525":"chen",

"$19515":"cheng",

"$19500":"chi",

"$19484":"chong",

"$19479":"chou",

"$19467":"chu",

"$19289":"chuai",

"$19288":"chuan",

"$19281":"chuang",

"$19275":"chui",

"$19270":"chun",

"$19263":"chuo",

"$19261":"ci",

"$19249":"cong",

"$19243":"cou",

"$19242":"cu",

"$19238":"cuan",

"$19235":"cui",

"$19227":"cun",

"$19224":"cuo",

"$19218":"da",

"$19212":"dai",

"$19038":"dan",

"$19023":"dang",

"$19018":"dao",

"$19006":"de",

"$19003":"deng",

"$18996":"di",

"$18977":"dian",

"$18961":"diao",

"$18952":"die",

"$18783":"ding",

"$18774":"diu",

"$18773":"dong",

"$18763":"dou",

"$18756":"du",

"$18741":"duan",

"$18735":"dui",

"$18731":"dun",

"$18722":"duo",

"$18710":"e",

"$18697":"en",

"$18696":"er",

"$18526":"fa",

"$18518":"fan",

"$18501":"fang",

"$18490":"fei",

"$18478":"fen",

"$18463":"feng",

"$18448":"fo",

"$18447":"fou",

"$18446":"fu",

"$18239":"ga",

"$18237":"gai",

"$18231":"gan",

"$18220":"gang",

"$18211":"gao",

"$18201":"ge",

"$18184":"gei",

"$18183":"gen",

"$18181":"geng",

"$18012":"gong",

"$17997":"gou",

"$17988":"gu",

"$17970":"gua",

"$17964":"guai",

"$17961":"guan",

"$17950":"guang",

"$17947":"gui",

"$17931":"gun",

"$17928":"guo",

"$17922":"ha",

"$17759":"hai",

"$17752":"han",

"$17733":"hang",

"$17730":"hao",

"$17721":"he",

"$17703":"hei",

"$17701":"hen",

"$17697":"heng",

"$17692":"hong",

"$17683":"hou",

"$17676":"hu",

"$17496":"hua",

"$17487":"huai",

"$17482":"huan",

"$17468":"huang",

"$17454":"hui",

"$17433":"hun",

"$17427":"huo",

"$17417":"ji",

"$17202":"jia",

"$17185":"jian",

"$16983":"jiang",

"$16970":"jiao",

"$16942":"jie",

"$16915":"jin",

"$16733":"jing",

"$16708":"jiong",

"$16706":"jiu",

"$16689":"ju",

"$16664":"juan",

"$16657":"jue",

"$16647":"jun",

"$16474":"ka",

"$16470":"kai",

"$16465":"kan",

"$16459":"kang",

"$16452":"kao",

"$16448":"ke",

"$16433":"ken",

"$16429":"keng",

"$16427":"kong",

"$16423":"kou",

"$16419":"ku",

"$16412":"kua",

"$16407":"kuai",

"$16403":"kuan",

"$16401":"kuang",

"$16393":"kui",

"$16220":"kun",

"$16216":"kuo",

"$16212":"la",

"$16205":"lai",

"$16202":"lan",

"$16187":"lang",

"$16180":"lao",

"$16171":"le",

"$16169":"lei",

"$16158":"leng",

"$16155":"li",

"$15959":"lia",

"$15958":"lian",

"$15944":"liang",

"$15933":"liao",

"$15920":"lie",

"$15915":"lin",

"$15903":"ling",

"$15889":"liu",

"$15878":"long",

"$15707":"lou",

"$15701":"lu",

"$15681":"lv",

"$15667":"luan",

"$15661":"lue",

"$15659":"lun",

"$15652":"luo",

"$15640":"ma",

"$15631":"mai",

"$15625":"man",

"$15454":"mang",

"$15448":"mao",

"$15436":"me",

"$15435":"mei",

"$15419":"men",

"$15416":"meng",

"$15408":"mi",

"$15394":"mian",

"$15385":"miao",

"$15377":"mie",

"$15375":"min",

"$15369":"ming",

"$15363":"miu",

"$15362":"mo",

"$15183":"mou",

"$15180":"mu",

"$15165":"na",

"$15158":"nai",

"$15153":"nan",

"$15150":"nang",

"$15149":"nao",

"$15144":"ne",

"$15143":"nei",

"$15141":"nen",

"$15140":"neng",

"$15139":"ni",

"$15128":"nian",

"$15121":"niang",

"$15119":"niao",

"$15117":"nie",

"$15110":"nin",

"$15109":"ning",

"$14941":"niu",

"$14937":"nong",

"$14933":"nu",

"$14930":"nv",

"$14929":"nuan",

"$14928":"nue",

"$14926":"nuo",

"$14922":"o",

"$14921":"ou",

"$14914":"pa",

"$14908":"pai",

"$14902":"pan",

"$14894":"pang",

"$14889":"pao",

"$14882":"pei",

"$14873":"pen",

"$14871":"peng",

"$14857":"pi",

"$14678":"pian",

"$14674":"piao",

"$14670":"pie",

"$14668":"pin",

"$14663":"ping",

"$14654":"po",

"$14645":"pu",

"$14630":"qi",

"$14594":"qia",

"$14429":"qian",

"$14407":"qiang",

"$14399":"qiao",

"$14384":"qie",

"$14379":"qin",

"$14368":"qing",

"$14355":"qiong",

"$14353":"qiu",

"$14345":"qu",

"$14170":"quan",

"$14159":"que",

"$14151":"qun",

"$14149":"ran",

"$14145":"rang",

"$14140":"rao",

"$14137":"re",

"$14135":"ren",

"$14125":"reng",

"$14123":"ri",

"$14122":"rong",

"$14112":"rou",

"$14109":"ru",

"$14099":"ruan",

"$14097":"rui",

"$14094":"run",

"$14092":"ruo",

"$14090":"sa",

"$14087":"sai",

"$14083":"san",

"$13917":"sang",

"$13914":"sao",

"$13910":"se",

"$13907":"sen",

"$13906":"seng",

"$13905":"sha",

"$13896":"shai",

"$13894":"shan",

"$13878":"shang",

"$13870":"shao",

"$13859":"she",

"$13847":"shen",

"$13831":"sheng",

"$13658":"shi",

"$13611":"shou",

"$13601":"shu",

"$13406":"shua",

"$13404":"shuai",

"$13400":"shuan",

"$13398":"shuang",

"$13395":"shui",

"$13391":"shun",

"$13387":"shuo",

"$13383":"si",

"$13367":"song",

"$13359":"sou",

"$13356":"su",

"$13343":"suan",

"$13340":"sui",

"$13329":"sun",

"$13326":"suo",

"$13318":"ta",

"$13147":"tai",

"$13138":"tan",

"$13120":"tang",

"$13107":"tao",

"$13096":"te",

"$13095":"teng",

"$13091":"ti",

"$13076":"tian",

"$13068":"tiao",

"$13063":"tie",

"$13060":"ting",

"$12888":"tong",

"$12875":"tou",

"$12871":"tu",

"$12860":"tuan",

"$12858":"tui",

"$12852":"tun",

"$12849":"tuo",

"$12838":"wa",

"$12831":"wai",

"$12829":"wan",

"$12812":"wang",

"$12802":"wei",

"$12607":"wen",

"$12597":"weng",

"$12594":"wo",

"$12585":"wu",

"$12556":"xi",

"$12359":"xia",

"$12346":"xian",

"$12320":"xiang",

"$12300":"xiao",

"$12120":"xie",

"$12099":"xin",

"$12089":"xing",

"$12074":"xiong",

"$12067":"xiu",

"$12058":"xu",

"$12039":"xuan",

"$11867":"xue",

"$11861":"xun",

"$11847":"ya",

"$11831":"yan",

"$11798":"yang",

"$11781":"yao",

"$11604":"ye",

"$11589":"yi",

"$11536":"yin",

"$11358":"ying",

"$11340":"yo",

"$11339":"yong",

"$11324":"you",

"$11303":"yu",

"$11097":"yuan",

"$11077":"yue",

"$11067":"yun",

"$11055":"za",

"$11052":"zai",

"$11045":"zan",

"$11041":"zang",

"$11038":"zao",

"$11024":"ze",

"$11020":"zei",

"$11019":"zen",

"$11018":"zeng",

"$11014":"zha",

"$10838":"zhai",

"$10832":"zhan",

"$10815":"zhang",

"$10800":"zhao",

"$10790":"zhe",

"$10780":"zhen",

"$10764":"zheng",

"$10587":"zhi",

"$10544":"zhong",

"$10533":"zhou",

"$10519":"zhu",

"$10331":"zhua",

"$10329":"zhuai",

"$10328":"zhuan",

"$10322":"zhuang",

"$10315":"zhui",

"$10309":"zhun",

"$10307":"zhuo",

"$10296":"zi",

"$10281":"zong",

"$10274":"zou",

"$10270":"zu",

"$10262":"zuan",

"$10260":"zui",

"$10256":"zun",

"$10254":"zuo"

};

var returnChar = "";

execScript("ascCode=Asc(\""+text+"\")", "vbscript");

//var tmp = "varPinYinTable." + ascCode.toString().replace("-","$");

//eval(returnpy=tmp);

//var tmp = varPinYinTable." + ascCode.toString().replace("-","$");

var tmpAsc = ascCode.toString().replace("-","$");

if(tmpAsc>"$20319" || tmpAsc<"$10247")

{

return text;

}

for(var key in varPinYinTable)

{

if(tmpAsc>key)

{

break;

}

tmpKey=key;

}

tmpAsc=tmpKey;

eval("returnpy = varPinYinTable." + tmpAsc + ";");

//var a=".$10544";

//var returnpy=varPinYinTable.+a;

return returnpy;

}

</Script>

</Head>

<Body>

<Input type="text" id="lbl1" value="中华人民共和国"></lable>

<br/>

<Input type="button" id="btn" value="转换简拼" onclick="BeginChangeSmiple()"/>

   

<Input type="button" id="btn" value="转换全拼" onclick="BeginChangeFull()"/>

<br/>

<Input type="text" id="lblResult"/>

</Body>

</Html>





不知以上代码的效率如何,如能在此基础上提高效率,还希望给出意见
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: