<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="转换简拼" οnclick="BeginChangeSmiple()"/>
<Input type="button" id="btn" value="转换全拼" οnclick="BeginChangeFull()"/>
<br/>
<Input type="text" id="lblResult"/>
</Body>
</Html>
不知以上代码的效率如何,如能在此基础上提高效率,还希望给出意见