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

来源:互联网 发布:淘宝怎么做自己的app 编辑:程序博客网 时间:2024/04/25 17:38

<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()"/>
  &nbsp;&nbsp;&nbsp;
  <Input type="button" id="btn" value="转换全拼" onclick="BeginChangeFull()"/>
  <br/>
  <Input type="text" id="lblResult"/>
 </Body>
</Html>

 

 

不知以上代码的效率如何,如能在此基础上提高效率,还希望给出意见

原创粉丝点击