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

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

 

 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现JS获取文拼音全拼,可以借助第三方库pinyin.js来实现。pinyin.js是一个基于汉字转拼音的JavaScript库,可以将文转成拼音,并具有全拼简拼以及多音字处理的功能。 实现的步骤如下: 1. 首先,下载pinyin.js库,并在HTML文件引入该库的脚本。 2. 创建一个input文本框,用于输入文字符。 3. 监听input文本框的oninput事件,在事件处理函数获取输入的文字符。 4. 使用pinyin.js库的方法将文字符转换成拼音。可以使用pinyin.js库提供的toPinyin方法来实现,该方法接收一个字符串参数,返回对应的拼音全拼字符串。 5. 将转换后的拼音全拼字符串显示在页面上,可以通过innerHTML或者innerText属性来设置显示内容。 示例代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="pinyin.js"></script> </head> <body> <input id="input" type="text" oninput="getFullPinyin()"> <div id="pinyin"></div> <script> function getFullPinyin() { var input = document.getElementById("input").value; var fullPinyin = pinyinUtil.toPinyin(input, '', true); document.getElementById("pinyin").innerText = fullPinyin; } </script> </body> </html> ``` 以上示例,pinyin.js库被引入,并在输入框的oninput事件调用getFullPinyin函数,获取文输入的拼音全拼,并将结果显示在id为pinyin的div元素。 ### 回答2: 在JavaScript,可以使用第三方库来获取文拼音全拼。其一个常用的库是pinyin.js。使用该库可以非常方便地将文转换成拼音全拼。 首先,需要将pinyin.js库引入到项目。可以通过在HTML文件添加如下代码来实现: ```html <script src="pinyin.js"></script> ``` 假设我们要获取文字符串"国"的拼音全拼。可以使用以下代码来实现: ```javascript var pinyin = PinyinHelper.convertToPinyinString("国", "", PinyinFormat.WITHOUT_TONE); console.log(pinyin); // 输出:zhongguo ``` 在上述代码,`PinyinHelper.convertToPinyinString`函数接受三个参数。第一个参数是要转换的文字符串,第二个参数是分隔符,指定将拼音拼接在一起时使用的分隔符,默认为空字符串。第三个参数是拼音格式,可选值有WITH_TONE_NUMBER(带声调数字)、WITHOUT_TONE(不带声调)和WITH_TONE_MARK(带声调符号)。 通过调用`PinyinHelper.convertToPinyinString`函数,即可将文字符串转换为拼音全拼。以上例子,输出结果为"zhongguo",即“国”的拼音全拼。 ### 回答3: 要使用JavaScript获取文拼音全拼,我们可以借助第三方的拼音库,比如pinyin.js。首先,我们需要在项目引入该库。 然后,我们可以使用该库的方法将文转换为拼音。具体的步骤如下: 1. 创建一个存储文字符串的变量。 2. 使用pinyin库的方法,将文字符串转换为拼音数组。 3. 将拼音数组转换为拼音字符串。 4. 输出拼音字符串。 下面是一个示例代码: ```javascript // 引入pinyin库 import pinyin from 'pinyin'; // 定义文字符串 const chineseString = '文拼音'; // 将文字符串转换为拼音数组 const pinyinArray = pinyin(chineseString, { style: pinyin.STYLE_NORMAL, // 获取全拼 }); // 将拼音数组转换为拼音字符串 const pinyinString = pinyinArray.join(''); console.log(pinyinString); // 输出拼音字符串 ``` 上述代码,我们使用`pinyin.STYLE_NORMAL`来获取文拼音的全拼形式。你也可以尝试其他的拼音风格,比如缩写形式。 总之,通过使用第三方库pinyin.js,我们可以方便地在JavaScript获取文字符串的拼音全拼

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值